4 Replies Latest reply on May 16, 2008 1:48 AM by Brian Stew

    Still no crossfade in Director 11

    muckibuck
      In more than ten years have the creators of Director not been able to provide a decent crossfade transition. It is hard to believe that even in Director 11 the transitions panel has been left untouched. It looks like Director 4.
      Of course I know how to write my own transitions in Lingo, but why should I have to do that? It makes the code and interaction unnessesarily awkward. Any cheap slideshow software comes with crossfades!!!
        • 1. Re: Still no crossfade in Director 11
          Level 7
          ...and if that weren't bad enough, the transitions that ARE built in hog the
          processor and no frame cycling occurs during a transition.

          The good news, as I see it, is that since the addition of imaging Lingo, one
          CAN write his own transitions. Given the way the built in transitions work,
          I think that's not such a bad thing. But yes, it does seem odd that some of
          the outdated features of Director have not been addressed.

          Craig


          "muckibuck" <webforumsuser@macromedia.com> wrote in message
          news:g00lvm$21t$1@forums.macromedia.com...
          > In more than ten years have the creators of Director not been able to
          > provide a
          > decent crossfade transition. It is hard to believe that even in Director
          > 11 the
          > transitions panel has been left untouched. It looks like Director 4.
          > Of course I know how to write my own transitions in Lingo, but why should
          > I
          > have to do that? It makes the code and interaction unnessesarily awkward.
          > Any
          > cheap slideshow software comes with crossfades!!!
          >


          • 2. Re: Still no crossfade in Director 11
            ytlevine Level 1
            I am not familiar with how to write transitions in Lingo, especially crossfades.
            Can someone help me with this?
            Thanks.
            • 3. Re: Still no crossfade in Director 11
              Video Steve
              The only way I can think of to do a crossfade in director is to fade each sprite over time

              Example: imagine a stage with the two images you want to fade, on above another. To keep it easy, lets suppose each sprite is 20 frames long.

              Select the last frame of the first sprite. (frame 20). Make sure only this 20th frame is highlighted, not the entire sprite.

              Go to properties and select the down arrow from the box to the right of the "ink" box (look for the "%" sign).
              Select "0". With this selection, sprite #1 will fade away from 100 to 0 over the course of 20 frames.

              Technically, sprite #1 is just fading. This might be enough but to make a true cross fade, repeat these steps for sprite #2

              THEN

              Select all of sprite #2 from the stage. Go to Modify/Reverse sequence.

              Now sprite #2 is going from 0 (complete transparency) to 100 % solid. While sprite #1 is going from 100 percent solid to completely transparent.

              This is hardware intensive (director always is) and works better over a longer period of time. (Greater than 25 frames) but it does work.

              • 4. Still no crossfade in Director 11
                Brian Stew Level 2
                A so called crossfade is really just a fade from something into the new stuff; you don't need to 'splice' the two. Actually that will just look strange midway, with two semi opaque parts revealing the Stage colour underneath.
                Fading isn't especially processor intensive for one sprite, but if you have a lot of elements (sprites) on your stage, it is a challenge to fade them all. Also for you: extend 40 random sprites and alter their keyframes - huh?

                With imaging Lingo you can for instance take a screen grab of the current stage and store it as a new member in the cast. Attach this image to a single sprite that covers all other elements (i.e. top of stack / bottom of score). Move to the new location, and then fade out the single sprite, which will reveal the new content underneath in a smooth fashion. This is much easier for you and the processor as well.

                Here is one way to do it:

                1. On the navigation button for screen "A", attach this:

                on mouseDown me
                myImage = window("stage").image
                member("stageimage").image = myImage
                end

                on mouseUp me
                go to "B"
                end

                2. Create a 'dummy' graphic member called "stageimage". Put a small rectangle in it. Unerneath your screen "B" in the Score (where you want to navigate to), drag it directly into the Score; not on to the Stage. This will keep it centered. The sprite channel should be higher than any other elements in "B"; in my example #10.

                3. Create a Scorescript where screen "B" starts (you don't need additional cells for the fade from "A" at all), and put this in:

                on enterFrame me
                if sprite(10).blend > 1 then
                sprite(10).blend = sprite(10).blend - 2 --the last number determines the speed of the fade
                else
                sprite(10).visible = false
                end if
                end

                on exitFrame me
                go the frame
                end

                Remember the difference between visible = 0 and blend = 0; the latter will only make the sprite opaque but it will still be functional as a button for instance. It will also cover any button functionality underneath! You don't want that here. A sprite with visibilty turned off (0 or false) will disable it and also let buttons underneath work as expected. So after the sprite with the image from screen "A" has reached opaque, it is turned completely off too.
                If the jump from A to B occurs several times (possibly), you should attach this to the sprite that fades:

                on beginsprite me
                sprite(me.spritenum).visible = 1
                end

                It will ensure that it is always ON and visible before each new fade.