由于某些我不了解的原因,我无法将动画片段添加到舞台或我的文档类。
这就是我所拥有的:
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;
}
}
}
答案 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导出动画片段的逐步说明:
答案 3 :(得分:0)
我将代码移动到了另一个函数,它以某种方式工作,而没有改变任何与blockshards有关的东西..非常奇怪