Доступ к неопределенному свойству из 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 от сообщения об ошибке:)