[Newbies] Re: Morphic - how to make a submorph not visible outside
his owner
David Corking
lists at dcorking.com
Thu Jul 19 14:17:09 UTC 2012
patrick dudjalija wrote:
> It's *EXACTLY* what i needed.
You are welcome.
> By the way, anyone got an idea why if the line "Transcript show: (pos
> asString);cr." is commented out or the Transcript Window is closed, i don't
> get the animation but only the final state of the animation ?
You blocked Morphic's UI loop, so that your morph doesn't update the screen.
As Tobias said, try to use Morphic's built-in hooks to step animation,
as shown here:
http://stephane.ducasse.free.fr/FreeBooks/CollectiveNBlueBook/morphic.final.pdf
Once I understood how timing works, I found step easier than
iteration. It is more fun too, as you can co-ordinate simultaneous
animations.
However the following quick ugly hack works. I send a refreshWorld
message to m1 after each iteration. The UI loop is still blocked,
which is probably not what you want, but you can see the animation
without a transcript.
|m1 m2|
m1:=Morph new.
m1 extent:800 at 600.
m1 color:Color blue.
m1 center: Display center.
m1 clipSubmorphs: true.
m1 openInWorld.
m2:=Morph new.
m2 extent:200 at 200.
m2 color:Color red.
m1 addMorph: m2.
m2 center: m1 center.
1 to:200 do:[:el|
|pos|
(Duration seconds:0.01) asDelay wait.
pos:=(m2 position x -5)@(m2 position y).
((pos x + m2 width) >= (m1 position x)) ifFalse:[
pos:=((m1 position x + m1 width)@ m2 position y).
].
m2 position:pos.
m1 refreshWorld.
].
Have fun!
More information about the Beginners
mailing list