1

これは可能ですか?Flash 9 または Flash 10 がインストールされているユーザーが表示できるメイン SWF が必要です。この swf の内部では、Flash 10 がインストールされているユーザーに対してのみ、別のモジュールがロードされます。このモジュールは、いくつかの高度なフラッシュ 10 機能を使用します。

4

3 に答える 3

1

Flash 10SWFでFlash10固有のライブラリを使用しようとしているのでない限り、これは正常に機能するはずです。これはおそらくあなたが行っていることです。私はこれを試してみましたが、AdobeはFlash/Flexライブラリのデザインと品質に失望しています。

たとえば、私は次のことをしようとしていました

ユーザーのFlashPlayerが10以上の場合、Flash10モジュールをロードするFlash9ベースSWFがあります。このFlash10モジュールは、次のようなFlash 10固有のライブラリを使用することになります。1)flash.net.NetStreamPlayOptions 2)flash.net.NetStreamPlayTransitions 3)NetStream.play2残念ながら、これを行うと、Flashランタイムはそのようなものがないと文句を言います。 NetStreamPlayOptions、NetStreamPlayTransitions、およびNetStream.play2のようなもの。NetStreamPlayOptionsとNetStreamPlayTransitionsを複製してこれを回避しようとしましたが、残念ながら、NetStreamインスタンスをオブジェクトとしてキャストしても、NetStream.play2を呼び出すことができませんでした。

ベースSWfであるFlash9はFlash9用のplayerglobal.swcを使用しているため、このように機能すると思います。Flash10 SWFをロードしても、環境が原因でFlash9playerglobal.swcを使用することになります。 Flash 9用に初期化されたため、Flash10SWFで問題が発生します。私はこれを回避する方法をまだ見つけていません。

FlashがAS1->AS2->AS3に切り替わっていたとき、下位互換性がなかった理由は理にかなっていますが、AS3が常にAS3をロードできるとは限らないため、非常に残念です。

于 2009-07-29T02:14:37.377 に答える
1

確かに、これはあなたが説明したようにうまくいくはずです。基本 SWF を Flash 9 で作成し、バージョン チェックを行い、必要に応じて 10 として公開された別の SWF を読み込みます。Flash は、読み込まれた SWF のバージョンに関係なく、v10 SWF の高度な機能をレンダリングします。

バージョンは文字列として返されるので、必ず a を実行しparseIntてください。

于 2009-05-17T02:10:51.103 に答える
0

私がフラッシュアプ​​リを開発していないのは久しぶりですが...これらは私の2セントです:

メインのフラッシュを 10 にコンパイルする必要がある場合がありますが、これはアップグレードの警告のために問題になる可能性があります。

これは可能な回避策です: http://codeofdoom.com/wordpress/2009/02/09/compiling-to-flash-10-requiring-flash-9/

それができたら、あなたが言うように、フラッシュのバージョンを検出してさまざまなswfモジュールをロードするのは簡単だと思います。

于 2009-05-15T19:50:41.213 に答える