[英]Flex: Draw on different frames of a MovieClip
How can I used ActionScript to draw on different frames of a movie clip. 如何使用ActionScript在影片剪辑的不同帧上绘制。 That is, make it so that movieClip.gotoAndStop(0);
也就是说,使它成为movieClip.gotoAndStop(0);。 will show something different to movieClip.gotoAndStop(1);
将显示与movieClip.gotoAndStop(1)不同的内容;
You can use addFrameScript in your code. 您可以在代码中使用addFrameScript。
For example, let's say you have a movieclip associated with the class CustomMovieClip. 例如,假设您有一个与类CustomMovieClip相关联的动画片段。
In your CustomMovieClip's constructor, you can write something like the following (untested code): 在CustomMovieClip的构造函数中,您可以编写类似以下内容(未经测试的代码):
class CustomMovieClip { 类CustomMovieClip {
... ...
function CustomMovieClip() { stop(); 函数CustomMovieClip(){stop();
// add drawGraphicsForFrame1 code into frame 0 //将drawGraphicsForFrame1代码添加到第0帧
addFrameScript(0, drawGraphicsForFrame1); addFrameScript(0,drawGraphicsForFrame1);
// add drawGraphicsForFrame2 code into frame 1 //将drawGraphicsForFrame2代码添加到第1帧
addFrameScript(1, drawGraphicsForFrame2); addFrameScript(1,drawGraphicsForFrame2); ...
...
} }
private function drawGraphicsForFrame1():void { stop(); 私有函数drawGraphicsForFrame1():void {stop();
var sprite:Sprite = new Sprite(); var sprite:Sprite = new Sprite(); addChildAt(sprite, 1);
addChildAt(sprite,1);
// draw in sprite //绘制精灵
sprite.graphics.lineStyle ... sprite.graphics.lineStyle ...
} }
private function drawGraphicsForFrame2():void { 私有函数drawGraphicsForFrame2():void {
// remove the previous sprite (assumption: it's always at layer 1)
if (getChildAt(1) != null)
removeChildAt(1);
// draw new sprite
var sprite:Sprite = new Sprite();
addChildAt(sprite, 1);
sprite.graphics.lineStyle ...
} }
... ...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.