Actionscript 3 编写';如果';ActionScript中的语句
是否有一种编写包含以下内容的Actionscript 3 编写';如果';ActionScript中的语句,actionscript-3,if-statement,movieclip,flash-cs6,Actionscript 3,If Statement,Movieclip,Flash Cs6,是否有一种编写包含以下内容的if语句的方法 if (MovieClip1 reaches last frame) { addChild(MovieClip2) removeChild(MovieClip1) } 基本上,我想要发生的就是当我的电影剪辑结束时,它会变成另一个电影剪辑或图像。我知道这可能很简单,但我该怎么做呢?所有代码都是通过命令运行的。因此,您的条件将立即运行,不再运行 相反,您使用事件。将侦听器附加到事件,当该事件触发时(被“调度”以使用正确的词汇表),将再次调
if
语句的方法
if (MovieClip1 reaches last frame)
{
addChild(MovieClip2)
removeChild(MovieClip1)
}
基本上,我想要发生的就是当我的电影剪辑结束时,它会变成另一个电影剪辑或图像。我知道这可能很简单,但我该怎么做呢?所有代码都是通过命令运行的。因此,您的条件将立即运行,不再运行 相反,您使用事件。将侦听器附加到事件,当该事件触发时(被“调度”以使用正确的词汇表),将再次调用代码
var movieClip:MovieClip = new MovieClip();
movieClip.addEventLister( Event.ENTER_FRAME, this.enterFrameHandler ); //will be called on every frame enter
function enterFrameHandler( e:Event ):void {
if ( movieClip.currentFrame == movieClip.totalFrames ) {
// do something
}
}
因此,您监听每个新帧,并在该处理程序中检查它是否是最后一帧
作为一个额外的技巧,AS3的标准命名约定是对所有对象使用小写的camelcase(这是一个例子)。包名应该全部用小写,只有类名应该大写。这看起来很有希望:)我会尽快尝试,如果有效,我会将其标记为正确。谢谢:)好吧,我试过了,我认为你写的是对的,但我做的是错的?这就是我写的:您需要学习如何使用访问修饰符(public、private、protected、internal、final、static)。我几乎可以保证这就是问题所在。如果您使用的是类,则在函数外部定义的每个函数和变量都必须具有访问修饰符。此外,不应在函数外部实例化任何非常量/非基本数据类型对象。除此之外,您肯定应该阅读基本OOP(特别是语法和范围),因为您似乎对它没有很好的理解。我将对此进行研究。输出面板的内容大致如下:display对象必须是调用者的子对象。
package
{
import flash.display.MovieClip;
import flash.events.KeyboardEvent;
import flash.events.Event;
public class Main extends MovieClip
{
var firstScene:FirstScene = new FirstScene;
var movement:Movement = new Movement;
var green:Green = new Green;
public function Main()
{
addChild(firstScene);
firstScene.addEventListener(KeyboardEvent.KEY_DOWN, mClick);
movement.addEventListener(Event.ENTER_FRAME, endChange);
}
function mClick(event:KeyboardEvent):void
{
if (event.keyCode == 77);
{
addChild(movement);
removeChild(firstScene);
}
}
function endChange(event:Event):void
{
if (movement.currentFrame == movement.totalFrames)
{
addChild(green);
removeChild(movement);
}
}
}
}