标签存档:flex教程
3.15使用延迟实例化提高启动效率
发表时间:18. 12月, 2009 作者:Freddie.
问题
我们要保证组件仅仅在需要显示在屏幕上的时候才被创建。
Container 类默认情况下仅仅在要显示组件的时候创建它,因为UIComponent 默认的
creationPolicy 值为auto。换句话说,当视图(view)设置成可视的时候,如果还没有创建
该视图,则组件会实例化此视图
code:
<mx:Canvas xmlns:mx=”http://www.adobe.com/2006/mxml”
height=”600″
width=”600″>
<mx:Script>
<![CDATA[
private function changeViewStackCreation():void
{
viewStack.creationPolicy=(comboBox.selectedItem as String);
viewStack.createComponentsFromDescriptors(true);
}
private function changeViewStack():void
{
viewStack.selectedIndex=comboBoxChangeIndex.selectedIndex;
}
]]>
</mx:Script>
<mx:Fade alphaFrom=”0″
alphaTo=”1″
duration=”4000″
id=”fadeIn”/>
<mx:ComboBox dataProvider=”{['none', 'all', 'queued',
'auto']}”
change=”changeViewStackCreation()”
id=”comboBox”/>
<mx:ComboBox dataProvider=”{[1, 2, 3, 4]}”
x=”150″
change=”changeViewStack()”
id=”comboBoxChangeIndex”/>
<mx:ViewStack id=”viewStack”
width=”400″
height=”300″
creationPolicy=”none”
y=”100″>
<mx:Canvas creationCompleteEffect=”{fadeIn}”
creationIndex=”0″
backgroundColor=”#0000ff”
[...]

