Flex / Air / AS3选择并填充未聚焦选项卡

时间:2010-04-05 23:27:53

标签: flex actionscript-3 air

我在选项卡中将功能显示到文本框时遇到问题。 如果您运行代码并单击“选择选项卡2并填充...”,则会出现错误; “TypeError:错误#1009:无法访问空对象引用的属性或方法。” 我猜这是因为“Tab 2”尚未呈现。现在,如果我运行代码, 选择“选项卡2”然后选择“选项卡1”并单击“选择选项卡2并填充...”它可以工作 我想要的方式。任何人都知道解决这个问题的方法。

----完整的Flex 4 / Flash Builder代码只需复制粘贴----

<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
                       xmlns:s="library://ns.adobe.com/flex/spark" 
                       xmlns:mx="library://ns.adobe.com/flex/halo"
                       creationComplete=" ">    
    <fx:Script>
        <![CDATA[           
            public function showtab2():void
            {
                mytextbox.text="I made it!";
                tn.selectedIndex=1;
            }
        ]]>
    </fx:Script>
    <fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
    </fx:Declarations>
    <mx:Panel title="TabNavigator Container Example" height="90%" width="90%" 
              paddingTop="10" paddingLeft="10" paddingRight="10" paddingBottom="10">

        <mx:Label width="100%" color="blue"
                  text="Select the tabs to change the panel."/>

        <mx:TabNavigator id="tn"  width="100%" height="100%">
            <!-- Define each panel using a VBox container. -->

            <mx:VBox label="Panel 1">
                <mx:Label text="TabNavigator container panel 1"/>
                <mx:Button label="Select Tab 2 and Fill with Text" click="showtab2()"/>
            </mx:VBox>

            <mx:VBox label="Panel 2">
                <mx:Label text="TabNavigator container panel 2"/>
                <s:TextInput id="mytextbox" />
            </mx:VBox>

        </mx:TabNavigator>

        <mx:HBox>
        </mx:HBox>

    </mx:Panel>

</s:WindowedApplication>

1 个答案:

答案 0 :(得分:1)

您可以使用 creationPolicy -property更改tabnavigator(或任何其他多视图容器)的渲染行为。

此属性的默认值为'auto'(仅在需要时创建),但您可以将其设置为'all'以在开始时在tabnavigator中创建每个子项。

请注意,这可能会导致性能问题。有关详细信息,请访问:http://livedocs.adobe.com/flex/3/html/help.html?content=layoutperformance_05.html