Доступ к неопределенному свойству из Flash в Flashbuilder

Я искал пока, но я нашел ответ здесь, в стеке, поэтому я надеюсь, что кто-нибудь сможет мне помочь.

Я опробовал Flash prof CS6 и Flashbuilder. Я создал во Flash ролик с названием square_mc и создал его с квадратным именем.

Я связал файл класса с именем 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, и поэтому выдает предупреждение.

Есть ли способ заставить Flashbuilder понять, что он там и работает?

1 ответ

Решение

Вариант 1. Чтобы исправить это, я обычно снимаю флажок "Автоматически объявлять экземпляр этапа" в настройках ActionScript ("Файл"> "Настройки ActionScript") во Flash CS6. Затем в Flash Builder объявите мувиклип, который у вас есть на сцене во Flash CS6, следующим образом:

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 от сообщения об ошибке:)

Другие вопросы по тегам