list.layout.target имеет значение null - PullRequest
0 голосов
/ 11 февраля 2011

У меня есть функция на мой взгляд, которую я вызываю из двух разных мест, это моя функция:

        protected function change():void
        {

            var g:GroupBase = productSetList.layout.target;
            if(g){
                trace('not null');
            }else{
                trace ('null');
            }

        }

У меня есть s: List со свойством change="{change()}", так что это нормально, g никогда не равно нулю, но когда я вызываю другую функцию, g равно нулю почему?!?!?!

* EDIT

вот мой список искр:

<s:List 
    id="productSetList" 
    dataProvider="{ model.productSets }" 
    change="{change()}"
    height="100%" width="100%"
    borderVisible="false" 
    itemRenderer="SideBarItemRenderer" top="20" left="15">
    <s:layout>
        <layout:VerticalWheelLayout gap="24"/>  
    </s:layout>
</s:List>

1 Ответ

0 голосов
/ 28 февраля 2011

В этом примере вызывается метод change () из обработчика изменений и из обработчика нажатия кнопки, и оба эти параметра работают нормально:

<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
               xmlns:s="library://ns.adobe.com/flex/spark">
    <fx:Script>
        <![CDATA[
            import spark.components.supportClasses.GroupBase;
            protected function change():void {
                var g:GroupBase = productSetList.layout.target;
                if(g){
                    trace('not null');
                }else{
                    trace ('null');
                }
            }
        ]]>
    </fx:Script>

    <s:controlBarContent>
        <s:Button label="call" click="change()" />
    </s:controlBarContent>

    <s:List 
        id="productSetList" 
        change="{change()}"
        height="100%" width="100%"
        borderVisible="false" top="20" left="15">
        <s:dataProvider>
            <s:ArrayList>
                <fx:String>one</fx:String>
            </s:ArrayList>
        </s:dataProvider>
        <s:layout>
            <s:VerticalLayout gap="24"/>  
        </s:layout>
    </s:List>

</s:Application>

Возможно, это связано с вашим пользовательским макетом.Если вы обменяете это на s: VerticalLayout, это работает так, как вы ожидаете?Если нет, можете ли вы предоставить исходный код для VerticalWheelLayout?

...