This content has been marked as final. Show 4 replies
...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.
"muckibuck" <email@example.com> wrote in message
> 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
> have to do that? It makes the code and interaction unnessesarily awkward.
> cheap slideshow software comes with crossfades!!!
I am not familiar with how to write transitions in Lingo, especially crossfades.
Can someone help me with this?
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
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.
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
on mouseUp me
go to "B"
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
sprite(10).visible = false
on exitFrame me
go the frame
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
It will ensure that it is always ON and visible before each new fade.