squeak smalltalk 中的动画
animation in squeak smalltalk
我在 squeak smalltalk 中有一个简单的变形。
我想用 5 秒(或 10 秒)将它从 x1,y1 移动到 x2,y2(动画)
是否有在 squeak smalltalk 中创建动画的内置方法?
是的,有一个内置的方式:
创建Morph的子类并实现这两个方法
- stepTime(步骤之间的时间,以毫秒为单位)和
- step(以固定的时间间隔发送到 morph)
一个最小的例子:
Morph subclass: #MovingMorph
instanceVariableNames: ''
classVariableNames: ''
category: 'MovingMorph'
MovingMorph>>stepTime
stepTime
^ 100
移动变形>>步
step
self position: self position + (1@1)
现在在世界中打开一个 MovingMorph (MovingMorph new openInWorld
) 并使用 startStepping
和 stopStepping
控制动画。
虽然可以使用 Morphic 步进显示动画,但 Animations Project 更进一步,并提供了使用短动画的简单界面:
AnimPropertyAnimation new
duration: 500;
target: myMorph;
property: #position; "There should be a message called #position:."
startValue: 10@10;
endValue: 100@100;
start.
诸如淡入淡出之类的事情甚至更简单:
myMorph fadeOut.
我在 squeak smalltalk 中有一个简单的变形。 我想用 5 秒(或 10 秒)将它从 x1,y1 移动到 x2,y2(动画)
是否有在 squeak smalltalk 中创建动画的内置方法?
是的,有一个内置的方式:
创建Morph的子类并实现这两个方法
- stepTime(步骤之间的时间,以毫秒为单位)和
- step(以固定的时间间隔发送到 morph)
一个最小的例子:
Morph subclass: #MovingMorph
instanceVariableNames: ''
classVariableNames: ''
category: 'MovingMorph'
MovingMorph>>stepTime
stepTime
^ 100
移动变形>>步
step
self position: self position + (1@1)
现在在世界中打开一个 MovingMorph (MovingMorph new openInWorld
) 并使用 startStepping
和 stopStepping
控制动画。
虽然可以使用 Morphic 步进显示动画,但 Animations Project 更进一步,并提供了使用短动画的简单界面:
AnimPropertyAnimation new
duration: 500;
target: myMorph;
property: #position; "There should be a message called #position:."
startValue: 10@10;
endValue: 100@100;
start.
诸如淡入淡出之类的事情甚至更简单:
myMorph fadeOut.