トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   ActionScript 3.0 特設会議室
     フレーム移動をしてすぐ、クラスを読み込むと
投稿するにはまず登録を

フラット表示 前のトピック | 次のトピック
投稿者 スレッド
knagai
Åê¹ÆNo.41730
投稿日時: 2009-3-10 22:19
職人
居住地: 白馬村
投稿: 796
使用環境:
Re: フレーム移動をしてすぐ、クラスを読み込むと
実験をしてみました。
Flash CS3のFLAファイルのメインのタイムラインのフレーム20に
someNameというムービークリップを置きます。
このFLAファイルのドキュメントクラスをMainに設定します。

Main.as
package {

	import flash.display.MovieClip;

	public class Main extends MovieClip {

		public function Main() {
			// フレームnextに移動
			gotoAndPlay("next");
			// そのフレーム番号を出力
			trace("Mainクラス");
			trace(currentFrame);
			// そのフレームのステージにに存在するムービークリップのインスタンス名を出力
			trace(someName)
			// Someクラスにそのムービークリップを渡してSomeインスタンスを作成
			var some:Some = new Some(someName);
			addChild(some)
		}
	}
}


Some.as
package {

	import flash.display.MovieClip;

	public class Some extends MovieClip {

		public function Some(mc:MovieClip) {
			trace("Someクラス");
			var _mc = mc;
			trace(_mc.name);
		}
	}
}

このFLAファイルをプレビューすると、

Mainクラス
20
null
Someクラス
TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。

というエラーが発生しました。

次にこのFLAファイルをFlash CS4で開き、パブリッシュ設定をFlash Player 10に変えて
別名で保存し、プレビューしました。
するとエラーは発生せず、以下が出力されました。

Mainクラス
20
[object シンボル1]
Someクラス
someName

ちなみに[object シンボル1]の部分はMain.asの
trace(someName)をtrace(someName.name)に変えると、
someNameが出力されます。

以上の実験の設定が最初の質問と同じならば、行き先のフレームにあるムービークリップがnullになるのはFlash Player 9のの不出来のせいだろうと思います。

とはいえMainクラスが生まれ出ようとしている最中に別のフレームに飛ばしてそこで何かしようとするのは、やはりよくないと思います。

たとえがよくないですが、生まれる赤ん坊のへその緒を切らないうちに、抱き上げるようなものかと。


----------------
永井勝則:
himco.jp :

フラット表示 前のトピック | 次のトピック

題名 投稿者 日時
   フレーム移動をしてすぐ、クラスを読み込むと satokichi 2009-3-9 17:29
     Re: フレーム移動をしてすぐ、クラスを読み込むと Fumio 2009-3-9 18:16
       Re: フレーム移動をしてすぐ、クラスを読み込むと satokichi 2009-3-9 20:08
       » Re: フレーム移動をしてすぐ、クラスを読み込むと knagai 2009-3-10 22:19

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops