2012-03-20 25 views
3

PCで使用するために設計されたFlexアプリケーションをiPad、iPhone、またはAndroidベースのモバイルデバイスで実行できますか?Flexアプリケーションはモバイルデバイス上で動作しますか?

十分に簡単な質問のようです。 http://www.adobe.com/products/flex.htmlを訪問すると、(おそらく)FlexアプリケーションをAndroid上で実行している仲間の写真が得られます。一見すると、答えは「はい」と思われます。物語の終わり。

まだ...

単にiOSのか、他のモバイルプラットフォーム上で実行されませんFlashベースの技術を提案し、様々なハイテクサイトでそこにそんなに(MIS)の情報があります。どうしてこれなの?おそらく、Flexは「すぐに」実行されず、プラグインを必要としていると言うことでしょうか?それとも、それはまったく動かないことを意味しますか?

私は決定的な結論に達したと思うたびに、スラッシュドットまたはCNET上でいくつかのポストは、直接それに反します。それで、スクープは何ですか?既存のFlexアプリケーションをiOS/Androidで実行できますか? (私はアプリが効果的をを実行していない可能性がありますを検討するには、画面サイズの問題があり実現しています。私はちょうどランタイムは、Flexアプリケーションがまったく起動できるようにするために、モバイルデバイス上で利用可能かどうかを知りたい。)

申し訳ありません騒ぎの質問のために。私の背景はWPF/HTML5です。アドビの技術は私にとっては全く外国人です。

答えて

4

私は以下の多くのことを書いた:

これはなぜでしょうか? 理由の詳細は以下の通りです。

おそらく彼らは、Flexは、「箱から出して」実行し、プラグインを必要としないだろうと言っている意味ですか? それはまったく動かないことを意味しますか? Flash Builderツール(SDKのbinフォルダ)を使用すると、ネイティブデスクトップアプリケーション、デスクトップWebブラウザ、ネイティブiOSアプリケーション、ネイティブAndroidアプリケーション用にコンパイルできます。 AndroidのFlashPlayerプラグインをインストールすると、FlashコンテンツがWebブラウザに表示され、iOSはAIRでコンパイルされたもののみを実行し、Webブラウザではなくネイティブアプリとして実行します。

私が最終的な結論に達したと思うたびに、SlashDotまたはCNETの一部の投稿が直接矛盾します。それで、スクープは何ですか?既存のFlexアプリケーションをiOS/Androidで実行できますか? AIRを使用して3つのプラットフォームすべてでネイティブアプリケーションとして実行する場合(デスクトップFlex APIはWeb Flex APIの大部分を占めます)、パフォーマンスとフォームファクタに関するその他の点は有効であり、考慮する必要がありますしかし、。いいことは、モデル/コントローラ・コードをAS3の共通ライブラリに書き込んで、ライブラリを共有する別々のプレゼンテーション・レイヤ・インタフェースを作成できることです。

ここでは、非常に長いバージョンです:

は、SWF形式を使用してSWFの拡張子を持つファイルの形で「バイトコード」のフラッシュコンパイラの結果を使用して、あなたはここでそれについての詳細トンを読むことができます: http://www.adobe.com/devnet/swf.html

ファイルを解釈するには、.NETフレームワークコンテキスト(デスクトップ上またはWeb上のSilverlightを使用して)でWPF/XAML/C#を実行するのにある程度類似したランタイムが必要です。アドビの技術(ラフ同等)の場合:

  • AS3 = C#
  • MXML = XAML
  • フレックス= WPF + WCF(クライアント側のRPCないサーバ側)
  • のFlash Player =シルバー
  • AIR(Adobeは、ランタイムを統合)= .NET Frameworkの再頒布可能 の.dll(S)/。そう(s)は、デスクトップのOS用の

(LOこのリストは非常に読みます私が知っているのは、MXMLがAS3にコンパイルされ、コンパイラにデバッグフラグが設定されている場合にのみデバッグシンボルが含まれているため、違いがたくさんありますが、これは

iOSのブラウザでは、従来のNetscapeブラウザプラグインやActiveXプラグインのプラグインは使用できません。このため、プラグイン、つまりFlashplayerやSilverlightをブラウザで実行することはできません。 Adobeは、ブラウザで動作するAndroidデバイスのフラッシュプレーヤーをリリースして以来、ブラウザのデバイスで動作しますが、大半のモバイルデバイスプラットフォームをサポートする必要があるため、この長期的なサポートのためにタオルに投げ込まれました。 iOSは、関連性を維持するために(これは、Google、デバイスメーカー、キャリア、マイクロソフトによるタオルの集団的な投げ込みと、ビジネス上の最善の決定をしようとするもので、WebKitとV8またはSpiderMonkeyはおそらくFlashが何をすることができ、場合によってはより良いことを99%行い、WebKitはうまくいけばオープンソースとして残るだろう...フレームワークとブラウザはちゃんとしたものにして安定させる必要がある)。

ユーザーがAIRをインストールする(またはランタイムがアプリケーションとともにパッケージ化されている)場合、Flex/Flash(AS3および/またはMXMLでコード化されswfにコンパイルされたもの)をトランスコード/パッケージ化してそのデバイスの実行時間は正しく(iOSかAndroidか、RIMが行ったものであれ、Windows Phone 7のAIRとARMのWin8ではブラウザプラグインをサポートしていないと思います)。この混乱の一部は、おそらく、Appleが「クロスコンパイル」されたAppsの配布を拒否したため、Adobeがその目的に使用できることを発表した直後に、AIRをiOS向けのオプションのリストから除外した(Adobeが倒れている間)。混乱のもう1つの原因は、おそらく、デバイスをハッキングした人の実際の人物から来ているか、2人がiOSデバイスで動作するようにFlash Playerのランタイムにオープンソースの選択肢を得ることができたということだ(私は、いくつかのLinuxは頻繁に改ざんされ、おそらくFAKE vidsもあります)。

+0

ありがとうございます、これは有益です!あなたは素晴らしいです。私が嫌うのは、FlexをネイティブのiOSにコンパイルしたい場合、デベロッパーが指摘するように、ターゲットデバイスのIDを知っていて、99人に展開を制限しない限り、アプリケーションストアを通じてデプロイする必要があります。 。 FlexとHTML5の両方に長所と短所がありますが、私は、HTML5が新しいプロジェクトにとって最も抵抗の少ない経路であるという印象を受けます。既存のFlexプロジェクトでは、モバイルデバイスへの移行パスがあることを知ってうれしいです。再度、感謝します! –

+0

@ChadDeckerまずは、ありがとうございます。私は、特にHTML5/CSS3/JSが現在の方法であるように見えるWebアプリケーションの面で同意します。現時点では、多くの人々がブラウジングとは対照的に、自分のデバイス上のWebから情報を取得するためにネイティブアプリケーションを使用しているため、AS3はそのように実行可能である可能性があります(そのコンテキストではまだクロスプラットフォームです) 。ブラウザ内では、特にCSS3に関して断片化された解釈がまだありますが、その文脈では、さまざまな解釈が私たちが生きなければならないものです。 – shaunhusain

1

短い答え:いいえ

長い答え:あなたはネイティブiOSアプリとして使用するためにあなたのFlash/Flexアプリケーションをコンパイルするには、Adobeのツールを使用することができます。したがって、あなたは普通にFlexのようにWebページにアプリを埋め込むことはできませんが、ネイティブアプリとして構築することはできます。これを行うには、Flash Builder 4.5が必要です。

+0

元のポスターでは、ブラウザベースのアプリケーション(Flash Playerをターゲットとする)とデスクトップベースのアプリケーション(Adobe AIRをターゲットとする)のどちらを作成していたかは指定されていませんでした。あなたの短い答えは「いいえ」はブラウザベースのアプリケーションの場合にのみ正しいです。私はすべてのFlexアプリケーションがWebページに埋め込まれていると言うと、不完全だと思う。 – JeffryHouser

+0

十分です。私は短い答えでブラウザに基づいていたので、長い答えです。 – davidethell

1

それは.swfファイルとしてiPhone上で実行されませんが、それはアドビのフラッシュがインストールされているのAndroidベースのデバイス上で実行されます。それはまた、フラッシュを持っているBBのプレイブックで実行されます。

+0

あなたは正しいですが、この回答は不完全です。 Flash SWFはiOSモバイルブラウザでは動作しませんが、 AIR SDKの一部として使用できる無料のコマンドラインツールを使用して、任意のSWFをネイティブiOSアプリケーションに変換できます。これには、Flexアプリケーションも含まれます。ほとんどの場合、タッチ入力や画面サイズなどの問題により、「そのまま」のSWFをモバイルアプリケーションとして動作させることは望ましくありませんが、実行することはできます。 – JeffryHouser

3

モバイルアプリケーションでFlexアプリケーションを実行できますが、Flexプロジェクトを実行するだけではありません。

Flash Builder(Flex Ide)またはFlash Professionalでは、モバイルプロジェクトを作成できます。これらのプロジェクトは、iOSとAndroid用のネイティブアプリケーションを生成します。

最終私が試した時、その結果、利用可能なコンポーネント、私が期待したものよりも少ないです。そうすれば、Appcelerator.comやそれに類するもの、つまりHTML5/Jsコードをネイティブアプリに変えることをお勧めします。私はそれらを試して、Flexよりもはるかに優れていました。 :)あなたの貴重なバイトを取るために残念ではない私が直接最初のここでの質問を答え場合は、それを楽しんで読みたい場合

+0

だから私はあなたが正しく理解していれば、それは単にPCの代わりに携帯電話をターゲットにするコンパイラスイッチを微調整するだけですが、コードベースは変更されません。言い換えれば、モバイルライブラリなどを使用してUIを完全に書き直さなければならないようなものではありません。それはちょうど再コンパイルです。 –

+0

+1。確かに同意する。私は、Flash/Flexのモバイルデバイスを考え、HTML5に移行するときに別れを告げるつもりです。 – davidethell

+1

@ChadDecker、完全には真ではありません。私が間違っていなければ、すべてのコントロールがモバイルプロジェクトで使用できるわけではありません。適切なコントロールのサブセットを使用する必要があります。それを試してみてください。 – davidethell

0

フレックスはフレームワークです(とにかく、いつか完全な別の言語のように見える非常に美しいものです)。

AIRアプリケーションをビルドすると、Windows、iOS、Android、upcomming TV、PlayBook、さらにはWindows Phone上の将来(多分/ hopefuly)、LinuxとにかくAIRの未来はあまり明確ではありません(ただし、Adobeが再考することを希望します))。

Flash Builder 4.5以降で作成されたSoアプリケーションは、AIRアプリケーションであるとすぐにどこでも動作します。 コンパイルメドゥは本当にシンプルで、あなたはほぼ同時にコンパイルすることができます。

ここで最も重要なことの1つは、アプリケーションが1つのデバイスで設計したのと同じように動作、外観、操作を実行することです。 Flexは、実行している各プラットフォーム上のすべてのことをよく扱うものです。 例えば、私は現在Android向けにコンパイルしていますが、テストをしなくても、iOSとWindowsの下で同じように見え、同じように感じることができます。

+0

さらに。アップグレードのFlashリリース11.2以降では、パフォーマンスの変化が激しく、ActionScriptの純粋なOpenGLエクスポージャーや変更が進んでおり、実際のマルチスレッディングはすべてのデジタルマルチプラットフォームの夢を実現するでしょう:)。 –

関連する問題