2010-05-29 4 views
3

У меня есть несколько компонентов mxml в приложении, для которых требуется одна и та же переменная, называемая genericX. Я включил эту переменную в главном MXML и сделал это общественноеОбмен переменными между компонентами mxml

[Bindable] public var genericX:Number = 102; 

, но я до сих пор не может получить к нему доступ из других компонентов MXML. Если я попытаюсь сделать это, например, он не распознает переменную.

<s:Button x="{genericX}" label="Click" /> 

ответ

4

Существует также грязное решение, которое работает, но не приятно. Вы можете создать статическую переменную против класса приложения. Например:

[Bindable] public static var genericX : Object 

Вы можете получить доступ из любой точки мира, что, как это:

MyApplicationName.genericX 

Это не красиво, но это действительно работает :)

симон

3

У вас нет доступа к этому способу. В Flex есть что-то под названием Events, и вам необходимо передать эту переменную в файле MXML другому, используя eventDispatcher.

Например

[Bindable] общественный вар genericX: Number = 102;

private function init():void { 

var evt:NewCustomEvent = new CustomEvent(CustomEvent.SENDDATA); 
evt.genericaValue = genericX 
dispatchEvent(evt); 

} 

Теперь вы должны получить в компонент MXML, где вы хотите получить это событие и с помощью addEventListner(), чтобы получать это событие и соответствующую переменную.

Затем, наконец, введите его в свою кнопку.

1

Вы должны быть доступ к любым глобальным переменным:

Flex 3:

var app:Application = mx.core.Application.application as Application; 

Flex 4 (похоже, что вы используете):

var app:Object = FlexGlobals.topLevelApplication; 

И потом:

<s:Button x="{app.genericX}" label="Click" /> 
+0

Таким образом, в главном приложении вместо объявления его public public, например '[Bindable] public var genericX: Number = 102', что бы объявить его как? – Kamo

+0

Вы бы заявили об этом, как в своем исходном примере: [Bindable] public var genericX: Number = 102 Не обязательно быть статичным. – Inigoesdr

0

Here является примером для переменных обмена между MXML компонентами, объявляя их общественности в основное приложение.

Смежные вопросы