Вызов функции в компоненте mxml из основного приложения flex - PullRequest
1 голос
/ 20 декабря 2010

В моем основном приложении у меня есть видовой стек с 3 дочерними представлениями.В обработчике изменений стека я программно изменяю свойство selectedchild.

Я понимаю, что метод инициализации для представления не вызывается каждый раз, когда я изменяю свойство selectedChild.Поэтому я попытался также вызвать метод init программным способом.

view1.mxml

    <fx:Script>
    <![CDATA[
    public function init():void{
     //something        
    }
    ]]>
    </fx:Script>

main.mxml

viewStack.selectedChild = viewStack.getChildByName("viewname") as NavigatorContent;
var v1:view1 = new view1();
v1.init();

Но я получаю ошибку нулевого указателя.Я что-то пропустил?Любая помощь будет оценена.Я здесь новичок.

Ответы [ 2 ]

0 голосов
/ 20 декабря 2010

Я использовал

FlexGlobals.topLevelApplication.[viewId].init();

И это работает !!

0 голосов
/ 20 декабря 2010

В вашем приложении main.mxml вы создаете новый экземпляр компонента view1, и вам нужно выполнить метод init () текущего экземпляра стека представления.

Почему бы вам не попытаться сделать что-то вроде этого:

var view: View1 = viewStack.getChildByName ("viewname"). GetChildByName ("yourComponentId") как View1;

view.init ();

где yourComponentId - это ваш компонент внутри navigatorContent внутри вашего стека просмотра.

В любом случае, вы не должны этого делать, по крайней мере, не так.

Привет! * * 1015

Габриэль .-

...