Как я могу связать с глобальными переменными внутри моего компонента? - PullRequest
0 голосов
/ 19 августа 2009

Я разработал компонент, который представляет собой комбинацию нескольких элементов (холст, метки и т. Д.), Но когда я пытаюсь связать его с такой переменной, как: {stationXML.getItemAt (1) .AAA. @value}, это не работает. До того, как я объединил все элементы в компоненте, все они были в основном файле MXML, на котором они работали.

Не уверен, имеет ли это значение, но переменная набора массивов "stationXML" объявлена ​​внутри файла "Station.as".

Есть идеи?

Ответы [ 2 ]

1 голос
/ 19 августа 2009

Когда вы говорите «глобальная переменная», где и как именно она объявлена? В приложении Flex на самом деле нет такой вещи, как глобальная переменная. Если вы объявляете что-то в своем основном классе MXML, что не делает его глобальным, это делает его доступным экземпляром этого основного класса приложения. Если вы хотите получить доступ к этому значению внутри компонента, вы должны передать его этому компоненту. В качестве альтернативы вы можете реализовать одноэлементный класс для эффективного предоставления «глобального» доступа к этим значениям.


например, в компоненте создайте открытое свойство:

public var xmlData:XML;

затем в основном mxml передайте значение вниз:

<xxx:MyComponent id="foo" x="10" xmlData="{theValue}"/>
0 голосов
/ 19 августа 2009

расширяет ли Station.as EventDispatcher и несет ли класс (или свойство) тег метаданных [Bindable]? Для привязки к работе вашему классу необходимо расширить EventDispatcher где-нибудь в его структуре наследования, чтобы он мог уведомлять привязывающих «клиентов» о том, что он обновил.

...