AIR3.4を使用してAndroid用にコンパイルするFlashbuilder4.7のActionscriptMobileプロジェクトがあります。(AIR SDKの場所:C:\ Program Files \ Adobe \ Adobe Flash Builder 4.7 \ eclipse \ plugins \ com.adobe.flash.compiler_4.7.0.345990 \ AIRSDK)
最近、AIR 3.2からプロジェクトを復活させましたが、新しいランタイムエラーが発生しました。SWFからMovieClipアセット(truck_anm_mc)をインポートします(元々はFlash CS3からAS3で公開されましたが、Flash CS6を使用して再公開されました)。「truck_anm_mc」MovieClipには、インスタンス名が「Flick」の別のMovieClipが含まれています。
インポート方法は次のとおりです。
public var _truck_anim :MovieClip;
[Embed(source='/assets/blue/animation004.swf#truck_anm_mc')]
public var TruckAnim :Class;
これはそれがどのように使用されるかです(私はそれへのすべてのさらなる参照をコメントアウトしました-これはそれを使用するコードの唯一の行です、私がこの行をコメントアウトするとエラーは消えます):
_truck_anim = new TruckAnim() as MovieClip;
これはエラーです:
ReferenceError: Error #1056: Cannot create property Flick on animation004_swf$915bbdce658b4869e6dc24efe65092b42084086601.
at flash.display::Sprite/constructChildren()
at flash.display::Sprite()
at animation004_swf$915bbdce658b4869e6dc24efe65092b42084086601()
...
フリックはtrack_anm_mcのタイムライン上にあります。タイムラインからフリックを削除してもエラーはありません。
エラーは、プロパティFlickをスプライト上に作成できないことを報告します。これは、truck_anm_mcがスプライトの場合は意味がありますが、MovieClipであり、任意のプロパティを追加できるはずです。
[ステージインスタンスを自動的に宣言する]オプションをオンにした場合としない場合で作成されたSWFを試しました。TLFやRSLを使用していません。これは非常にシンプルなSWFで、タイムライン上に別のMovieClipモーションがトゥイーンされたMovieClipが含まれています。
MovieClipsは、MovieClipベースドキュメントクラスを使用し、クラスはFlashによって動的に作成されます。私はtrack_anm_mcのドキュメントクラスを作成し、Flickをパブリック変数として宣言しようとしましたが、エラーを回避できませんでした。