简体   繁体   English

Flex:在MovieClip的不同帧上绘制

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM