1

モバイルActionScript/FlexアプリケーションをPC/Macでも実行できるように移植しようとした人はいますか?問題は、Flexには一部のモバイル専用クラスと、モバイルには推奨されない他のクラスがあることです。

私はまだこれを試みていません、そして他の人がこの問題で彼らの経験を共有することをいとわないかどうか疑問に思っています。これを行うには、うまくいく可能性のあるいくつかの方法があるようです。

1)できるだけ多くの一般的なコードを使用するために、アプリのデスクトップバージョンにモバイル専用ライブラリを含めると機能する場合があります。

2)各ビューコンポーネントをモバイル用のコンテナ部分、デスクトップ用のコンテナ部分、およびモバイルとデスクトップの両方で使用されるすべてのコントロールを含む内部部分にリファクタリングすると機能する場合があります。

3)アプリケーションからFlexを作成し、純粋なActionScriptアプリケーションを使用すると機能する場合があります。これには、ActionScriptでView、ViewNavigator、およびTabbedViewNavigatorの独自の置換を記述し、すべてのspark.componentsをfl.controlsに置き換える必要があります。(パフォーマンス上の理由から、モバイルアプリケーションからデータバインディングと状態をすでに削除しました)。

4

1 に答える 1

2

モバイル ActionScript/Flex アプリケーションを PC/Mac でも実行できるように移植しようとした人はいますか?

はい、携帯ゲームでやりました。モバイル Flextras Componentsのデモにもあります。

できるだけ多くの共通コードを使用するために、アプリのデスクトップ バージョンにモバイル専用ライブラリを含めるとうまくいく場合があります。

非モバイル プロジェクトでモバイル コンポーネントを使用する場合。これがアプローチです。モバイル専用 SWC をライブラリ パスに追加します。モバイル テーマをライブラリ パスに追加する必要がある場合もあります。ただし、これは面倒な場合があります。2 つのテーマがあり、共有コンポーネントで問題が発生する可能性があるためです。リストやスクロール バーなど、完全なテーマを指定する必要があります。

各ビュー コンポーネントを、モバイル用のコンテナー パーツ、デスクトップ用のコンテナー パーツ、およびモバイルとデスクトップの両方で使用されるすべてのコントロールを含む内部パーツにリファクタリングするとうまくいく場合があります。

モバイル ゲームのメイン画面用。ビュー コンテンツをグループに拡張しました。次に、それらをモバイルの「ビュー」またはブラウザーのグループにラップしました。

あなたの 3 番目の提案がどのような問題を解決するのかわかりません。

また、デスクトップ、ブラウザー、およびモバイル プロジェクト間で共有できるように、できるだけ多くのコードをライブラリ プロジェクトに移動することもお勧めします。

私のモバイル ゲームには、ゲーム ボード用の「Flex-less」ライブラリがあります。次に、ビュー コンテンツ用の Flex Library プロジェクトがあります。このライブラリは、ゲーム ボードを「ラップ」します。次に、すべての要素をまとめたモバイル プロジェクトと Web プロジェクトで Flex ライブラリを使用します。

レベル データのロード方法には違いがあります (モバイルでは File Class を使用し、Web では URLLoader を使用します)。ビューにプロパティを設定して、さまざまな側面を制御します。たとえば、ブラウザー ベースのバージョンのゲームでは、ユーザーが矢印キーを使用すると想定されるため、画面上のコントロールが非表示になっています。

于 2013-02-01T21:30:46.140 に答える