Flex Mobile Appでは、アプリケーションコンポーネントは、ポートレート/ランドスケープのios/Android、グループの電話機/タブレットなどの状態を処理します。私のビューでは、メインアプリケーションにこれらの特定の状態が1つある場合、ボタンを含めることにしました。私はポートロイト/ランドスケープを確認し、再び自分の状態として設定するようなビューを必要としません。一方、ビューステートは他のものに必要です。では、トップレベルアプリケーションの状態がランドスケープなどの場合にのみ、ビューにボタンを含めるにはどうすればいいですか?Flex includeIn(topLevelApplicationの状態)
答えて
それは、複数の状態で存在している場合は、カンマで区切られたリストのすべての
ファーストを置くことができる属性includein =「風景」を使用してアプリケーションに2つの状態を追加するに:
<s:states>
<s:State name="portrait"/>
<s:State name="landscape"/>
</s:states>
次、あなたの<fx:Script>
セクションに次の関数を追加します。
<fx:Script>
<![CDATA[
import mx.events.ResizeEvent;
protected function application1_resizeHandler(event:ResizeEvent):void
{
if (width>height)
this.currentState="landscape";
else this.currentState="portrait";
}
]]>
</fx:Script>
またAPPLに上記のメソッドを呼び出しますication はのサイズを変更:
今<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark" applicationDPI="160" resize="application1_resizeHandler(event)">
コンポーネントを含めたり除外したい場合は、単に目的のコンポーネントに見えまたはincludeInを追加します。
visible.landscape="false"
または
includeIn="landscape"
フルコードサンプル:
<?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/mx"
resize="application1_resizeHandler(event)">
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<s:states>
<s:State name="portrait"/>
<s:State name="landscape"/>
</s:states>
<fx:Script>
<![CDATA[
import mx.events.ResizeEvent;
protected function application1_resizeHandler(event:ResizeEvent):void
{
if (width>height)
this.currentState="landscape";
else this.currentState="portrait";
}
]]>
</fx:Script>
<s:Button includeIn="landscape" x="58" y="52" label="Landscape"/>
<s:Button includeIn="portrait" x="58" y="90" label="Portrait"/>
</s:WindowedApplication>
これを行うには最適な方法かもしれません。しかし、パフォーマンス上の理由から、オブジェクトを作成する必要がないため、includeIn/excludeInはvisible = falseおよびincludeInLayout = falseを設定するよりも優れていることを誰もが告げるので、より良い解決策があると思っていました。そしてincludeIn/excludeInはafaikだけ州で利用可能です.. – MorbZ
あなたは正しいですが、上記のコードであなたは状態を持っていて、あなたは 'includeIn/excludeIn'を使うことができます。上記の完全なコードサンプルをご覧ください。 –
ええ、私のアプリケーションコンポーネントにないビューコンポーネントのアプリケーション状態にアクセスしたいです。私の質問を見てください。 – MorbZ
- 1. Lex/Flexの開始状態
- 2. Flex 4.5:状態とコンポーネント
- 3. Flexの親アプリケーションの状態へのアクセス4
- 4. Flex 4:トランジションはincludeIn属性とexcludeFrom属性で使用できますか?
- 5. アプリケーション状態の保存AIR
- 6. 有限状態マシン:複数の状態への1つの状態
- 7. componentWillReceiveProps状態が還元状態更新後のレンダリング状態と異なる
- 8. Handles.RotationHandle()の状態
- 9. プレスアンドロイドボタンの状態
- 10. ViewStateの状態
- 11. メニューページの状態
- 12. ファンクターインスタンスの状態
- 13. RFCOMM_CreateConnection - 既に開いている状態:2、RFC状態:4、MCB状態:5
- 14. Flex(DataGrid)、特定のセルの可視状態を変更する方法
- 15. 状態の取得選択した国の状態のリスト
- 16. デザインパターン:Railsの子状態からの親の集約状態
- 17. Flexでビューの状態が変化したときに関数を実行
- 18. flex/flashbuilder 4つのガンボ状態が空白になることがある
- 19. 状態マシンの例
- 20. Pumaの状態ファイル
- 21. コルーチンベースの状態マシン
- 22. Workflow Foundationの状態
- 23. Parsecのユーザー状態
- 24. OpenGLの状態セット
- 25. AS3ボタンの状態
- 26. TFS状態のワークフロー
- 27. マウスの状態winapi
- 28. アコーディオンメニューのアクティブ状態
- 29. Erlang Digraphsの状態
- 30. MPMoviePlayerControllerのバッファリング状態
私のアプリケーション状態であればビューでは動作しません。 – MorbZ
FlexGlobals.topLevelApplication.state属性はどうですか? – Mansuro
それは私にエラーを与える。それがうまくいくとは想像できませんでした – MorbZ