Flex 4フルスクリーンフォーカスHalo INavigatontエラーcreationPolicy="none"
4031 ワード
1.Flex 4のフルスクリーン:ページにcreationComprateイベント処理を追加します.creationComplettee=「init()」. ページにbuttonを追加します. buttonクリックイベント処理:
完成しました.これで全画面と普通の画面が切り替わります.
注意:(1)flex 3でmx.co ree.Appplication.appplication.stage.displayState=Stage DisplayStare.FULL_SCREEN;を選択します.
(2)フルスクリーンの場合、キーボードは使えません.
2.デフォルトでは、Flexで生成されたパッケージを使用してswfファイルにアクセスする場合でも、ページのcreationCompletteイベントでfocus Manager.setFocuを使用して、ある入力ボックスにフォーカスを合わせることができますが、swf全体がフォーカスを取得していないため、ページのロードが完了したときに直接入力することはできません.解決方法:工程カタログ下のhttml-template\index.templatedを修正して、ラベルにonloadイベントを追加します.
3.View Stockで「Haloナビゲーションのサブ世代はINavigatonitentを実現しなければなりません.」エラーが発生しました.
解決方法:ネストワンフロア
4.View StockでcreationPolicy=「none」の場合、手動でコンポーネントを作成します.
manView Stock.create ComponentFrom Descriptor; メインビューStock.validateNow()
コードは以下の通りです
[Bindable]
private var fullScreenBtnLabel:String = " ";
private function init():void{
stage.addEventListener(FullScreenEvent.FULL_SCREEN,function(event:FullScreenEvent):void {
fullScreenBtnLabel = event.fullScreen ? " " : " ";
});
}
<mx:LinkButton label="{fullScreenBtnLabel}" click="changeScreen(event)" textDecoration="underline"/>
private function changeScreen(event:MouseEvent):void{
stage.displayState = stage.displayState == StageDisplayState.FULL_SCREEN ? StageDisplayState.NORMAL : StageDisplayState.FULL_SCREEN;
}
完成しました.これで全画面と普通の画面が切り替わります.
注意:(1)flex 3でmx.co ree.Appplication.appplication.stage.displayState=Stage DisplayStare.FULL_SCREEN;を選択します.
(2)フルスクリーンの場合、キーボードは使えません.
2.デフォルトでは、Flexで生成されたパッケージを使用してswfファイルにアクセスする場合でも、ページのcreationCompletteイベントでfocus Manager.setFocuを使用して、ある入力ボックスにフォーカスを合わせることができますが、swf全体がフォーカスを取得していないため、ページのロードが完了したときに直接入力することはできません.解決方法:工程カタログ下のhttml-template\index.templatedを修正して、ラベルにonloadイベントを追加します.
<script type="text/javascript">
function doload() {
try {
document.getElementById('${application}').focus();
document.getElementById('${application}').select();
} catch (ex) {
}
}
</script>
<!-- ---------- html ----------- -->
<body onload="doload()">
3.View Stockで「Haloナビゲーションのサブ世代はINavigatonitentを実現しなければなりません.」エラーが発生しました.
解決方法:ネストワンフロア
4.View StockでcreationPolicy=「none」の場合、手動でコンポーネントを作成します.
manView Stock.create ComponentFrom Descriptor; メインビューStock.validateNow()
コードは以下の通りです
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" creationComplete="init();">
<s:layout>
<s:VerticalLayout/>
</s:layout>
<fx:Script>
<![CDATA[
import mx.core.INavigatorContent;
import mx.core.UIComponent;
private function init():void {
selectChildViewByIndex(panel1,0);
}
// ViewStack View
private function selectChildViewByIndex(view:UIComponent,index:int):void {
if(view == null){
mainViewStack.createComponentFromDescriptor(mainViewStack.childDescriptors[index],false);
mainViewStack.validateNow();
}
mainViewStack.selectedIndex = index;
}
]]>
</fx:Script>
<mx:ViewStack id="mainViewStack" creationPolicy="none">
<s:NavigatorContent>
<s:Panel id="panel1" title="panel1"/>
</s:NavigatorContent>
<s:NavigatorContent>
<s:Panel id="panel2" title="panel2"/>
</s:NavigatorContent>
<s:NavigatorContent>
<s:Panel id="panel3" title="panel3"/>
</s:NavigatorContent>
</mx:ViewStack>
<s:HGroup>
<s:Button label="show panel1" click="selectChildViewByIndex(panel1,0)"/>
<s:Button label="show panel2" click="selectChildViewByIndex(panel2,1)"/>
<s:Button label="show panel3" click="selectChildViewByIndex(panel3,2)"/>
</s:HGroup>
</s:Application>