2013-07-17 100 views
2

我在制作Flash横幅,我想动画循环播放3次然后停止。我不知道行动剧本,但我发现这个代码:动作脚本3。循环播放动画3次并停止

在我用这第一架:

_root.loops_played = 0; 

if (_root.loops_played >= 3){ 

stop(); //* 

} else { 

play(); 

} 

在最后一帧:

_root.loops_played += 1; 

不幸的是,动画不断循环和我得到这个错误:

Scene 1, Layer 'actions', Frame 1, Line 1 1120: Access of undefined property _root. 
Scene 1, Layer 'actions', Frame 1, Line 3 1120: Access of undefined property _root. 
Scene 1, Layer 'actions', Frame 175, Line 1 1120: Access of undefined property _root. 
Scene 1, Layer 'actions', Frame 175, Line 1 1120: Access of undefined property _root. 

任何人都可以帮忙吗?

回答

2

_root在AS3中不存在。这是一个AS2的事情。

但是,要获得当前的逻辑运行,请使用this而不是_root

下面是一些代码有没有太大的变化给你提供了什么:

第一帧:

if(!this.loops_played) this.loops_played = 1; 

if(this.loops_played >= 3) stop(); else play(); 

末帧:

this.loops_played++; 
1

编译器明确告诉你,_root属性是未定义的。您不能使用未定义的属性和对象。

_root不存在于AS3中,有一个稍微可比的属性root。请记住,root不是全球性的。

+2

谢谢!我还发现: var loopCounter:int = 0; loopCounter ++; (loopCounter <3){ gotoAndPlay(2); } 它的工作! – Joanna

+0

如果局部变量适合您的情况,请使用它。 – Kolyunya

2

将这个代码到最后一帧或者您想要在播放3次后停止播放电影。

if(!loopCount){var loopCount:Number = 0;} 
loopCount++; 
if(loopCount >= 3){stop();}