从Flash到Flashbuilder访问未定义的属性

时间:2013-04-21 13:38:46

标签: actionscript-3 flash flashbuilder4

虽然搜索了但我可以在Stack上找到答案,所以我希望有人可以帮助我。

我尝试了Flash教程CS6和Flashbuilder,我在Flash中创建了一个名为square_mc的Movieclip,并使用名称square来实例化它。

我已将名为Main.as的类文件链接到FLash构建器,并在flash builder中编写:

   package
{
    import flash.display.MovieClip;
    import flash.events.MouseEvent;

    public class Main extends MovieClip
    {
        public function Main()
    {
            super();

            circle.addEventListener(MouseEvent.CLICK, onToolClick);
    }

    function onToolClick(event:MouseEvent):void{
        trace("klickade på ontoolclick");
        }

    }
}
在Flash构建器中的

我收到警告“访问未定义的属性圈” 但是当我运行它时,它就像一个魅力。

我猜它只是Flashbuilder不知道我已经用Flash中的名称圈实例化了它,因此给出了警告。

有没有办法让Flashbuilder能够理解它在那里工作?

1 个答案:

答案 0 :(得分:0)

选项1: 为了解决这个问题,我通常在Flash CS6的ActionScript设置(文件> ActionScript设置)中取消选中“自动声明舞台实例”。然后在Flash Builder中声明Flash CS6中舞台上的MovieClip:

package
{
    import flash.display.MovieClip;
    import flash.events.MouseEvent;

    public class Main extends MovieClip
    {
        public var circle:MovieClip; // manually declare circle

        public function Main()
    {
            super();

            circle.addEventListener(MouseEvent.CLICK, onToolClick);
    }

    function onToolClick(event:MouseEvent):void{
        trace("klickade på ontoolclick");
        }

    }
}

选项2: 如果您不想在舞台上手动声明所有电影,则选项2是创建圆圈引用作为Flash Builder的单独变量:

package
{
    import flash.display.MovieClip;
    import flash.events.MouseEvent;

    public class Main extends MovieClip
    {
        private var _circle:MovieClip;

        public function Main()
    {
            super();
            _circle = this.getChildByName( "circle" ) as MovieClip;
            _circle.addEventListener(MouseEvent.CLICK, onToolClick);
    }

    function onToolClick(event:MouseEvent):void{
        trace("klickade på ontoolclick");
        }

    }
}

这应该会阻止Flash Builder向您提供错误消息:)