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. セッション状態とアプリケーション状態
- 6. 初期状態/後状態のアニメーション
- 7. ...状態、{}とObject.assign({}、状態、{})の相違点
- 8. アプリケーション状態の保存AIR
- 9. は、UMLの状態図の複合状態シェアのサブ状態同じ状態(?名)
- 10. 有限状態マシン:複数の状態への1つの状態
- 11. Flex(DataGrid)、特定のセルの可視状態を変更する方法
- 12. Reactjs - 親componend状態が
- 13. 状態値が「未定義」状態onChange
- 14. 休止状態で休止状態
- 15. Flexでビューの状態が変化したときに関数を実行
- 16. flex/flashbuilder 4つのガンボ状態が空白になることがある
- 17. 状態
- 18. 状態
- 19. 状態
- 20. 状態
- 21. componentWillReceiveProps状態が還元状態更新後のレンダリング状態と異なる
- 22. サービスファブリックアクターの状態
- 23. アカウントインボイスレポートの状態
- 24. TabStackNavigatorの状態?
- 25. Handles.RotationHandle()の状態
- 26. ViewStateの状態
- 27. ファンクターインスタンスの状態
- 28. メニューページの状態
- 29. Reduxの状態:
- 30. プレスアンドロイドボタンの状態
私のアプリケーション状態であればビューでは動作しません。 – MorbZ
FlexGlobals.topLevelApplication.state属性はどうですか? – Mansuro
それは私にエラーを与える。それがうまくいくとは想像できませんでした – MorbZ