我在选项卡中将功能显示到文本框时遇到问题。 如果您运行代码并单击“选择选项卡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>
答案 0 :(得分:1)
您可以使用 creationPolicy -property更改tabnavigator(或任何其他多视图容器)的渲染行为。
此属性的默认值为'auto'(仅在需要时创建),但您可以将其设置为'all'以在开始时在tabnavigator中创建每个子项。
请注意,这可能会导致性能问题。有关详细信息,请访问:http://livedocs.adobe.com/flex/3/html/help.html?content=layoutperformance_05.html