При кодировании в Flash IDE я очень часто использую следующую процедуру для создания специализированных версий классов MovieClip:
Я проектирую свой объект в IDE, например, добавляю две кнопки и даю имимена экземпляров "btn1" и "btn2".Затем я выбираю их вместе и конвертирую в символ.Затем я выбираю «Экспорт для ActionScript» и присваиваю им имя класса, скажем, «MyClass».
Затем я пишу специальный MyClass.as для него, например:
public class MyClass extends MovieClip{
private var _button1:Button;
private var _button2:Button;
public function MyClass(){
this.addEventListener(Event.ADDED_TO_STAGE, init);
....
}
private function init(e:Event){
_button1 = this["btn1"];
_button2 = this["btn2"];
}
...
}
(PS: я знаю, что мне не пришлось бы присваивать значения частным переменным _button1 и _button2, и вместо этого я мог бы напрямую вызывать btn1, но мне нравится использовать только переменные типа в моем коде)
Это работаеточень хорошо во Flash IDE.когда я создаю новый экземпляр MyClass (), он будет содержать все элементы, которые я поместил в Flash IDE при определении символа.Это очень удобно и просто.
Теперь я хочу сделать то же самое в FlashBuilder.
Для этого я разработал MyClass Symbol, как и прежде в Flash IDE, присвоил ему имя класса MyClass, а затемвыберите символ библиотеки и экспортируйте его в MyClass.SWC
. В Flash Builder я добавляю MyClass.SWC в путь сборки, и я пишу MyClass.as с тем же кодом, что и в примере Flash IDE.но на этот раз код не будет работать.на
_button1 = this["btn1"];
я получу сообщение об ошибке # 1069 о том, что «btn1» не был определен.
Итак, как это сделать правильно при разработке с помощью Flash Builder?
PS: я использую пакет по умолчанию в Flash IDE при установке имени класса для символа, а также в FlashBuilder для файла as
Спасибо!