0

私の問題は、タイトルが示唆するよりも少し複雑です。私は約 20 のフラッシュ ゲームを持っている会社で働いています。プレイヤーにはカスタマイズ可能なアバターもあり、これらのアバターはゲーム内で使用されます。

Avatar.swf というファイルがプリローダーによってロードされ、GameName.swf に渡されます。このアバター ムービークリップを使用してファクトリ クラスを作成し、ゲーム内でその多くのインスタンスを使用できるようにします。

問題なくローダーから Avatar ムービークリップのインスタンスを取得できます。AS3 でインスタンスからコンストラクターを取得する方法は 2 つあります。

1.) クラスとしての Object(myInstance).constructor

2.) クラスとして getDefinitionByName(getQualifiedClassName(myInstance))

1 は断続的に動作しますが、約 3 回に 1 回、結果のインスタンスによって null 参照エラーがスローされます。理由はわかりませんが、一貫した問題ではありません。あたかもスクリプトはあるが、アセット ライブラリがないかのようです。デバッグ モードとリリース モードの両方で発生します。また、FlashDevelop と CS5.5 を使用してコンパイルした場合にも発生します。

2 スロー エラー #1065: 変数アバターが定義されていません。これは、Avatar パッケージをインポートせず、Avatar のダミー インスタンスを宣言していないためだと理解していますが、これが要点です。たとえば、新しい衣服を追加してアバターを変更した場合、増え続けるゲームのリストを調べてすべてを再コンパイルする必要は絶対にありません。言い換えれば、私はすべてのゲームにアバター コードを入れたくないのです。

誰か提案はありますか?

ありがとう!

4

1 に答える 1

1
  1. Avatar.swf が同じアプリケーション ドメインにロードされていることを確認します。
  2. 各アバター クラスを少なくとも 1 回(たとえば、Avatar.swf のドキュメント クラスで) 使用したことを確認するか、それらが Flash ライブラリ アイテムの場合は、それらを Avatar.swf のフレーム 1 にエクスポートします。
于 2012-05-07T11:36:01.247 に答える