Ошибка при передаче переменной от одного компонента к другому во Flex - PullRequest
0 голосов
/ 19 сентября 2011

Я получаю сообщение об ошибке при попытке передать переменную из одного компонента в другой. У меня есть основной MXML и 2 компонента. Мои файлы следующие:

Main MXML

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
               xmlns:s="library://ns.adobe.com/flex/spark" 
               xmlns:mx="library://ns.adobe.com/flex/mx"
               height="100%" width="100%" xmlns:comps="components.*">


    <s:layout >
        <s:VerticalLayout/>
    </s:layout>


    <s:Group width="100%" height="100%">

            <s:HGroup>
                <habilitations:CMS comps="{this}" width="637" height="48"/>
            </s:HGroup>

            <s:Spacer/>

            <s:HGroup height="70%" width="30%">
                <comps:Component1 comps="{this}"/>
<comps:Component2 comps="{this}"/>
            </s:HGroup>
</s:Application>




Component1


<?xml version="1.0" encoding="utf-8"?>
<s:Group xmlns:fx="http://ns.adobe.com/mxml/2009"
         xmlns:s="library://ns.adobe.com/flex/spark"
         xmlns:mx="library://ns.adobe.com/flex/mx"
         width="400" height="100%">
    <s:layout>
        <s:VerticalLayout/>
    </s:layout>

    <fx:Script>
        <![CDATA[
            import mx.collections.XMLListCollection;
            import mx.controls.Alert;
            import mx.events.FlexEvent;

            [Bindable]
            public var testvar:String ="MYTEST";

            [Bindable]
            public var mainMXML:MainMXML;

        ]]>
    </fx:Script>


</s:Group>




Component2

<?xml version="1.0" encoding="utf-8"?>
<s:Group xmlns:fx="http://ns.adobe.com/mxml/2009" 
         xmlns:s="library://ns.adobe.com/flex/spark" 
         xmlns:mx="library://ns.adobe.com/flex/mx" width="400" height="300">
    <fx:Script>
        <![CDATA[
            import mx.controls.Alert;


            [Bindable]
            public var mycomponent1:Component1;
            [Bindable]
            public var mainMXML:MainMXML;

            protected function clickHandler(event:MouseEvent):void
            {
                Alert.show(new String( mycomponent1.testvar ));

            }


]]>
    </fx:Script>


    <s:Button click="clickHandler(event)"/>

</s:Group>



But I am getting the error :

Error #1009: Cannot access a property or method of a null object reference.

Кто-нибудь может помочь с этим?

1 Ответ

0 голосов
/ 19 сентября 2011

Дайте вашим компонентам идентификаторы

Тогда вы можете просто пойти MyComp.SomePublicVar = значение

Со второго компа вы можете перейти Alert.show (parentDocument.parentDocument.MyComp.SomePublicVar);

Нечто подобное;)

...