Str*_*ure 0 flash actionscript actionscript-3
这个问题可能很容易解决,但我不清楚.可能只是我做错了事.我已经研究了OOP和AS3几个小时,所以我熟悉概念但不熟悉流程.这是我整理的一个项目,以加强我一直在学习的东西.
这里的目标是从库中将预先创建的动画片段的实例加载到舞台,然后在FLA的时间帧ActionScript中执行定位功能,并在AS文件的ActionScript类中执行一个函数,以调整动画片段的大小并输出跟踪.
我有两个文件:smileface.fla smileface.as
在smileface.fla中,我有一个驻留在我的库中的MovieClip对象.它具有以下相关属性......
Name: faceInst Class: smileface Base Class: null
我有一个框架(关键帧),它包含以下ActionScript:
var faceInst:smileface = new smileface(); this.addChild(faceInst); faceInst.x = stage.stageWidth/2; faceInst.y = stage.stageHeight/2;
在我的smileface.as文件中,我有以下代码:
package {
import flash.display.MovieClip;
import flash.display.Stage;
public class smileface extends MovieClip {
public function smileFunction() {
this.width = stage.stageWidth/5;
this.height = stage.stageHeight/5;
trace("Done!");
}
}
}
我希望(没有理由这样做)在加载movieclip对象之后,它将根据规范调整大小,然后输出跟踪.
然而,相反的是,面部显示在舞台上,居中,但没有调整大小,并且根本不输出轨迹.
如果你想要它作为构造函数,它需要与文件相同的名称,笑脸而不是微笑功能
当您在将实例添加到舞台之前创建实例时,构造函数中对舞台宽度的调用将为null.你应该将它移动到添加到框架事件监听器:
package {
import flash.display.MovieClip;
import flash.display.Stage;
public class smileface extends MovieClip {
public function smileFace() {
addEventListener(Event.ADDED_TO_STAGE, init);
}
public function init(ev:Event){
this.width = stage.stageWidth/5;
this.height = stage.stageHeight/5;
trace("Done!");
}
}
}
Run Code Online (Sandbox Code Playgroud)