Цитата:
|
Сообщение от Скрипун
 Код:
<mx:Script>
<![CDATA[
my_button = new My_class(my_button);
]]>
</mx:Script>
<mx:Button id="my_button" x="254" y="56" label="test"/>
|
Надо понимать как работают декларативные и императивные фичи флекса.
Здесь my_button - компонент объявленный декларативно и ты не можешь определить когда он будет создан что бы передать его конструктору My_class. Код otherButton = new My_class(my_button); - выполняется почти моментально при открытии приложения, когда компоненты ещё не созданы.
Здесь помогут примеры из хэлпа. Application диспатчит событие applicationComplete после создания всех объявленных в mxml компонентов. my_button - не исключение.
По этому событию можно вызвать функцию, которая произведёт все необходимые действия с уже созданными компонентами, а не нулевыми ссылками. Например:

Код:
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" applicationComplete="init();" height="709" width="940">
<mx:Script>
<![CDATA[
var otherButton;
public function init():void
{
otherButton = new My_class(my_button);
}
]]>
</mx:Script>
<mx:Button id="my_button" x="254" y="56" label="test"/>
</mx:Application >