错误#1009-仅当主类中存在代码时

时间:2016-02-23 04:15:24

标签: actionscript-3

如果这是一个愚蠢的问题,请原谅我,我真的需要知道解决方案。所以这里我有一个程序,可以在每个设置的空间距离内生成粒子。我的程序包含一个名为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

1 个答案:

答案 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");
        }            
    }

试试这个!