Я получаю сообщение об ошибке при попытке передать переменную из одного компонента в другой. У меня есть основной 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.
Кто-нибудь может помочь с этим?
Дайте вашим компонентам идентификаторы
Тогда вы можете просто пойти MyComp.SomePublicVar = значение
Со второго компа вы можете перейти Alert.show (parentDocument.parentDocument.MyComp.SomePublicVar);
Нечто подобное;)