如果这是一个愚蠢的问题,请原谅我,我真的需要知道解决方案。所以这里我有一个程序,可以在每个设置的空间距离内生成粒子。我的程序包含一个名为supportForce的文档类和一个名为TheDot的对象类(粒子)。 在TheDot对象类中,我有以下代码 -
package
{
import flash.display.MovieClip;
import flash.events.Event;
public class TheDot extends MovieClip
{
var base:Object = MovieClip(root);
public function TheDot()
{
this.addEventListener(Event.ENTER_FRAME, eFrame);
}
private function eFrame(event:Event):void
{
if (base.currentFrame == 1){
trace ("G");
}
}
}
}
此代码完美运行(输出G),直到我将以下代码添加到文档类suportForce中,在ENTER_FRAME事件下 -
var ctX:int = 0,ctY:int = 0,done:Boolean = false;
while (done == false)
{
var dots:TheDot = new TheDot ;
dots.alpha = 0;
dots.x += (25 * ctX);
dots.y += (25 * ctY);
ctX++;
if (ctX == 22 && ctY == 20)
{
done = true;
break;
}
else if (ctX == 22)
{
ctX = 0;
ctY++;
}
stage.addChild(dots);
}
现在,有一个错误#1009:无法在TheDot / eFrame()访问空对象引用的属性或方法。我已将所有变量声明在正确的位置,以及函数。提前致谢。我在这里的驱动器中有.fla和.as文件的链接,如有必要,请使用它。 https://drive.google.com/folderview?id=0B8QnUfRAn9lKLUVqRjNSRHNpRkU&usp=sharing
答案 0 :(得分:1)
FIRST var dots:TheDot = new TheDot( stage );
public class TheDot extends MovieClip
{
var base:Object;
public function TheDot(stageRef:Stage)
{
base = stageRef;
this.addEventListener(Event.ADDED_TO_STAGE, init);
}
public function init(e:Event) {
this.removeEventListener(Event.ADDED_TO_STAGE, init);
this.addEventListener(Event.ENTER_FRAME, eFrame);
}
private function eFrame(event:Event):void
{
if (base.currentFrame == 1){
trace ("G");
}
}
试试这个!