我真的不想要复杂的东西,事实上我想要最简单的动画用于学习目的:
我只想在一条直线上移动一个形状。
是否可以通过以编程方式创建时间轴或不创建时间轴,在纯动作脚本(仅限flex sdk)中这样做?
答案 0 :(得分:3)
如果您使用的是Flash Builder(或Flex Builder),则可以通过创建ActionScript项目来实现此目的。当你说你想要使用Flex SDK但是纯ActionScript时我有点不清楚,因为Flex是ActionScript的框架。因此,如果您正在谈论mx效果和Spark效果,请告诉我们。
以下是纯ActionScript 3.0项目。
好的,所以你需要一个扩展MovieClip
说SimpleFlash
的课程。如果您不需要使用时间轴,则可以扩展Sprite
。
import flash.display.MovieClip;
public class SimpleFlash extends MovieClip {
public function SimpleFlash() {
}
}
我们需要在SimpleFlash
构造函数
var simpleShape:Shape = new Shape();
simpleShape.graphics.beginFill(0xFF0000);
simpleShape.graphics.drawRect(0, 0, 100, 100);
simpleShape.graphics.endFill();
simpleShape.x = 0;
我们必须在形状中添加一个事件监听器,这样当我们进入第一帧时,我们就可以执行一些动画了。
simpleShape.addEventListener(Event.ENTER_FRAME,simpleAnimation);
不要忘记将其添加到显示列表
addChild(simpleShape);
在我们的simpleAnimation函数(称为两行)中,我们希望沿x轴沿直线移动形状。
public function simpleAnimation(event:Event):void {
event.target.x += 1;
}
每次触发ENTER_FRAME的事件时,后面的形状将向右移动1个单位。 你去了一个没有时间轴的简单动画。
您可以从中学到什么?
1
更改为其他号码,看看会发生什么。形状是移动得更快还是更慢?event.target.x
更改为event.target.y
以哪种方式?