0

搜索了whiled,但我无法在Stack上找到答案,所以我希望有人能帮助我。

我尝试了 Flash prof CS6 和 Flashbuilder,我在 Flash 中创建了一个名为 square_mc 的影片剪辑,并用名称 square 对其进行了实例化。

我已将一个名为 Main.as 的类文件链接到 FLash builder,并在 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 builder 中,我收到警告“访问未定义的属性圈”但是当我运行它时,它就像一个魅力。

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

有没有办法让 Flashbuilder 明白它的存在并且可以工作?

4

1 回答 1

0

选项 1: 为了解决这个问题,我通常在 Flash CS6 的动作脚本设置(文件 > 动作脚本设置)中取消选中“自动声明舞台实例”。然后在 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 是创建对 circle 的引用作为 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 向您提供错误消息 :)

于 2013-04-21T15:05:15.730 回答