6

我在 squeak smalltalk 中有一个简单的变形。我想用 5 秒(或 10 秒)将它从 x1,y1 移动到 x2,y2(动画)

是否有在 squeak smalltalk 中创建动画的方法?

4

2 回答 2

8

是的,有一种内置方式:

创建一个 Morph 的子类并实现这两个方法

  • stepTime(步骤之间的时间,以毫秒为单位)和
  • 步骤(以固定的时间间隔发送到变形)

一个最小的例子:

Morph subclass: #MovingMorph
    instanceVariableNames: ''
    classVariableNames: ''
    category: 'MovingMorph'

移动变形>>步进时间

stepTime
    ^ 100

移动变形>>步进

step
    self position: self position + (1@1)

现在在 World ( ) 中打开一个 MovingMorph并用和MovingMorph new openInWorld控制动画。startSteppingstopStepping

于 2015-06-07T20:37:05.207 回答
7

虽然可以使用 Morphic stepping 显示动画,但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.
于 2015-06-08T07:24:01.117 回答