AS3 Flash - 将Movieclip添加到舞台,其中Actionscript无法正常工作

时间:2011-08-25 05:54:12

标签: flash actionscript-3

由于某些我不了解的原因,我无法将动画片段添加到舞台或我的文档类。

这就是我所拥有的:

var testShard:blockshards = new blockshards();
addChild(testShard);

没有任何事情发生,但执行了blockhards的代码(我在输出中看到它。)

当我在.fla文件中手动添加它时,它可以工作。

有谁知道为什么?当我用另一个movieclip替换blockshards时,它可以正常工作。

这是我的blockshards.as:

package  {
    import flash.events.Event;
    import flash.display.MovieClip;
    public class blockshards extends MovieClip{
        var framesToDie:uint = 30;
        var xspeed:Number = 0;
        var yspeed:Number = 0;
        public function blockshards() {
            addEventListener(Event.ENTER_FRAME, onEntFrm);
            xspeed = 2 - Math.random() * 4;
            yspeed = -5;
        }
        public function onEntFrm(e:Event){
            framesToDie--;
            if(framesToDie <= 0){
                this.parent.removeChild(this);
                removeEventListener(Event.ENTER_FRAME, onEntFrm);
            }
            alpha -= 0.03;
            x += xspeed;
            y += yspeed;
            yspeed += 0.2;
            xspeed *= 0.98;
        }
    }

}

4 个答案:

答案 0 :(得分:2)

您不应该直接在显示对象构造函数上执行代码,最好先对sage进行检查,其他方式,奇怪的事情发生。

public function blockshards() {
     if ( stage ) _init( );
     else addEventListener(Event.ADDED_TO_STAGE, _init );
}

private function _init( e:Event = null ):void {
    removeEventListener( Event.ADDED_TO_STAGE, _init );
    addEventListener(Event.ENTER_FRAME, onEntFrm);
    xspeed = 2 - Math.random() * 4;
    yspeed = -5;
}

在文档类的构造函数上也是如此。

答案 1 :(得分:0)

希望您使用链接属性来创建blockshards类。

因此可能是注册点问题。因此,请检查MovieClip的注册点。

答案 2 :(得分:0)

您的动画片段中没有任何内容或附加内容。你的剪辑会在那里,但显示为空!

编辑:显然这已经为您所知。我不知道Flash :-)但是这里有一个链接,它为您提供了为ActionScript导出动画片段的逐步说明:

http://help.adobe.com/en_US/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b8ea63-7fee.html

答案 3 :(得分:0)

我将代码移动到了另一个函数,它以某种方式工作,而没有改变任何与blockshards有关的东西..非常奇怪