6 Replies Latest reply on Jun 9, 2006 8:35 AM by Applied CD

    Maintaining stage loc after _movie.go()?

    Applied CD Level 1
      I’m sorry if this has already been answered but I did search the forum. I’m running the projector in a window and executing _moive.go(frame,movieName) to navigate between functional modules. I need the stage of the upcoming movie to open in the same location as the departing movie (which may have been moved), ie: the change between movies must be transparent (like it was in Director 8 and earlier). It should be easy, when leaving a movie I’ve got:

      on someEvent
      global gWindowRect
      gWindowRect = _movie.stage.rect
      _movie.go(myFrame,myPath)
      end

      And I’ve got the follow handler in all movies:

      on prepareMovie
      global gWindowRect
      _movie.stage.rect = gWindowRect
      end

      Just to be safe, the first movie sets centerStage=FALSE, although I don't think that should be needed.

      It sort of works, that is, the new stage does end up in the same location as the previous stage, but the new stage is drawn at the default location for a split second before it is relocated to proper position, which is very distracting. Is there an event earlier than prepareMovie that will allow the stage rect to be set before it is rendered (l do this all the time for MIAW's, but not the stage)?
        • 1. Re: Maintaining stage loc after _movie.go()?
          Level 7
          If a last resort solution is needed, you could look into having the
          movie display in a movie in a window, with stage movie (the projector's
          stub movie) visible set to false. One can then just change the fileName
          property of the miaw to change movies. Complications include keeping
          the miaw frontmost and in focus and dealing with movies of vasrious
          dimensions. The hidden stub movie can be an empty movie with a tiny
          stage that has a score script looping in place to keep things active.
          • 2. Re: Maintaining stage loc after _movie.go()?
            Applied CD Level 1
            Thanks JB. There's too much going on in these movies for me to be comfortable running everything as a MIAW. I've merged any movies I can, I'm down from about 25 to 6 or 7 so at least there are fewer transitions. I can’t believe this problem has been around for so long without a clear fix, it was never a problem prior to MX.

            There was a rational for having so many separate movie files. Every file is designed to be updateable via the internet. I wanted the pieces as small and discreet as possible to minimize download times if an update was required for a specific component. It turns out I can get more or less the same economy by organizing all of the cast members into multiple external casts. Even a complex DXR file is still very small if the internal cast is empty and only the external casts affected by the update will need to be downloaded.
            • 3. Re: Maintaining stage loc after _movie.go()?
              Level 7
              Check updatestage's quirk list - ISTR that this issue is noted with a
              workaround there.
              • 4. Re: Maintaining stage loc after _movie.go()?
                Level 7
                Found it in a post made to this forum on 8/5/06 in a thread titled
                'Maximize Application Problems':
                < http://updatestage.com/851list.html>
                <quote>
                projector:If the user moves the window of a projector-in-a-window and
                you do a "go movie", the new movie jumps the projector window back to
                the center of the screen. You can't fix this with any combination of
                projector settings on their own.

                Workaround:

                1) Projector setting: Stage Size should be "Match first movie"
                Check "Center" if you want the projector to display in the center
                initially when it launches.

                2) Movie projector is made from should contain:

                on prepareMovie
                the centerStage = FALSE
                end

                on stopMovie
                (the stage).rect = (the stage).rect
                end


                3) All movies should contain:

                on stopMovie
                (the stage).rect = (the stage).rect
                end


                Note: if all of your movies aren't the same size, the side-effect of
                this is that they all end up with a rect the size of the first movie.
                Additional workaround code would be needed to resize disparately-sized
                movies using (the stage).rect.
                </quote>
                • 5. Re: Maintaining stage loc after _movie.go()?
                  Level 7
                  I faced that in sept 2005, and the only solution I found was to set the
                  stage's visible to false at stopmovie, and back to true at startmovie :
                  the app disappears shortly, but at least reappears where you want it.

                  look for "keep stage position while navigating between movies" thread
                  with google.groups

                  hth

                  --
                  -----
                  Ned
                  -----
                  • 6. Re: Maintaining stage loc after _movie.go()?
                    Applied CD Level 1
                    Thanks All. Sean, I've put those changes in my project but haven't had a chance to test. I'll post once I've gotten a chance to try it.