Привязать переменную к свойству компонента ItemRender - PullRequest
2 голосов
/ 16 мая 2011

Я хотел бы связать переменную из моего ActionScript со свойством компонента, который находится в ItemRender. Но я всегда получаю эту ошибку:

1120: доступ к неопределенному свойству currentRoom.

Вот мой код

<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:solutionItems="com.barco.components.ControlRoomConfigurator.solutionItems.*">
    <mx:Script>
        <![CDATA[
            import com.barco.VO.ControlRoomConfigurator.Room;

            [Bindable] private var myArrayCollection:ArrayCollection;
            [Bindable] public var currentRoom:Room;


        ]]>
    </mx:Script>
    <mx:List id="listVideoWalls" 
         borderThickness="0"
         dataProvider="{myArrayCollection}" >
        <mx:itemRenderer>
            <mx:Component>
                <solutionItems:displaySolutionItem solutionId="{data.meetsRequirements.getItemAt(currentRoom.id)}" />
            </mx:Component>
        </mx:itemRenderer>
    </mx:List>
</mx:Canvas>

Я хотел бы использовать объект currentRoom в моем компоненте ItemRenderer. Как ты это делаешь?

Надеюсь, вы понимаете мой вопрос.

Спасибо!

Винсент

Ответы [ 2 ]

4 голосов
/ 16 мая 2011

Проблема в том, что <mx:Component> определение объявляет новую область.Таким образом, он не может получить доступ к текущей области файла mxml напрямую.<mx:Component> - это просто ярлык для прототипирования, чтобы иметь быстрый набросок.Но с точки зрения области действия это так же, как если бы вы извлекали ваш компонент в отдельный файл.Так что извлеки это и перестань путать:)

2 голосов
/ 16 мая 2011

В одном коротком решении используется externalDocument как

solutionId="{data.meetsRequirements.getItemAt(outerDocument.currentRoom.id)}"

для подробного чтения Понимание Flex itemRenderers

Надежды, которые помогают

...