以前は AIR 3.2 SDK で動作していた flash/air アプリのボタンを押すと、このエラーが発生します。現在は AIR 3.5 SDK にアップグレードされています。どんな助けでも大歓迎です。
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at seed_template_fla::MainTimeline/frame7()[seed_template_fla.MainTimeline::frame7:31]
at flash.display::MovieClip/gotoAndPlay()
at seed_template_fla::MainTimeline/gotoPage() [seed_template_fla.MainTimeline::frame1:20]
at seed_template_fla::MainTimeline/gotoRepro() [seed_template_fla.MainTimeline::frame1:12]
Mac で Flash CS6 を使用して iPhone 用のアプリを作成し、Air 3.5 SDK を使用してエクスポートしています。AIR 3.5 ランタイムもインストールされています。
アプリは現時点では非常にシンプルです。gotoAndPlay(frameNr) 関数を使用してボタンを押すと、基本的にフレームからフレームに移動します。フレームには、クリックすると数値の配列を更新するヘックスがいくつかあります。また、表示/非表示を切り替えます。
これは以前は AIR 3.2 SDK を使用して完全に機能していましたが、最近、Adobe から AIR 3.5 SDK をダウンロードし、フラッシュ ([ヘルプ] > [Air SDK の管理]) を介して追加し、[ファイル] > [パブリッシュ設定] > [ターゲット] でビルド ターゲットとして設定しました。
AIR 3.2 SDK に戻すと、アプリは再び完全に機能します。
また、AIR 3.5 SDK を使用して、IOS 5.1 を実行している iPhone 4S にアプリをアップロードすると、5 つの読み込みドットが点滅する黒い画面が表示されます。これは、AIR 3.2 SDK でも正常に機能します。
これはフレーム 7 のコードです。最後の行は 31 行目です。
stop();
techtitle.text = "Select Trait";
techdesc.text = "Spend points to change core stats and other special abilities";
points.visible = false;
techpoints.visible=false;
pointsbalance.text = myPoints.toString();
btn_tech.visible = false;
curTechSelected = null;
trace("set hexes invisible");
for (var j:int = 0; j <= 67; j++) {
if (hexStatusb[j] == 1) {
this["btn_hex_"+j+"b"].visible = false;
}
}
function onBtnHex37bClick(event:MouseEvent):void
{
techtitle.text = "tech1";
techdesc.text = "tech1 description"
techpoints.text = "-2";
points.visible = true;
techpoints.visible=true;
btn_tech.visible = true;
curTechSelected = btn_hex_37b;
curTechSelectedNr = 37;
curTechPoints = 2;
}
trace(this["btn_hex_37b"]);
btn_hex_37b.addEventListener(MouseEvent.CLICK, onBtnHex37bClick);