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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     MovieClipのキャストを使用すると、FlashPlayer10で書き出すと #1009 のエラーが出てしまいます。
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
えり
Åê¹ÆNo.44511
投稿日時: 2010-3-9 18:29
新米
居住地:
投稿: 23
使用環境:
win,mac
Flash CS4
MovieClipのキャストを使用すると、FlashPlayer10で書き出すと #1009 のエラーが出てしまいます。
プリローダーを作りたくて、

ルートの1フレーム目にローディングチェック用のmc、loader_mcを置き、
そのloader_mcの中のタイムライン1フレーム目に、
以下のようなローディング用のスクリプトを記述しますと、
TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。というエラーが出てしまいます。。。


《以下がエラーの出るスクリプトになります》
-------------------------------------------------------

// LoaderInfoクラスのオブジェクトを作り、loaderInfoプロパティ(読み込み状況に関しての情報)を取得。
var info:LoaderInfo=root.loaderInfo;

//リスナー登録
root.addEventListener(Event.ENTER_FRAME, loadCheck);


function loadCheck(evt) {
t_load.text=String(info.bytesLoaded);// 読込んだバイト数をt_loadのtextプロパティに。
t_total.text=String(info.bytesTotal);// コンテンツ全体のバイト数をt_total.textのtextプロパティに。
var percent=Math.floor(info.bytesLoaded/info.bytesTotal*100);// パーセントに変換
t_percent.text=percent;// パーセントをt_percentのtextプロパティに。

meter.scaleX=info.bytesLoaded/info.bytesTotal;
// パーセントをmeterの横幅の拡大率scaleXに代入。(= meter.width = percent; でも可)

if (info.bytesLoaded==info.bytesTotal) {//ダウンロードが終了したら。
MovieClip(root).gotoAndPlay("contents");
/*rootをMovieClip()で囲わないと未定義の・・・というエラーが出ることがある。
出てしまったら、MovieClip(root)と、rootをキャスト*/
root.removeEventListener(Event.ENTER_FRAME, loadCheck);//リスナー削除
}
}

-------------------------------------------------------

これは、後ろから6行目の、MovieClip(root)と、ここの
MovieClipのキャストをやめるとこの#1009エラーが消えますが、

今度は回避したかったもともとの”#1016 未定義の・・・というエラーが出てしまいます。

ちなみにこの#1009のエラーはFlashPlayer9で書き出せばでませんが、FlashPlayer10で書き出しすると出てしまいます。


コンテンツ自体は問題なく動いているのですが。。。。
何かスクリプトの書き方の順番がまずいのでしょうか。

すみません!お教えください。  環境:WinXP CS4 AS3です。

野中文雄
Åê¹ÆNo.44516
投稿日時: 2010-3-9 22:52
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: MovieClipのキャストを使用すると、FlashPlayer10で書き出すと #1009 のエラーが出てしまいます。
エラーメッセージは、ときおり訳のわからない表現もあるものの、やはり重要な情報です。省かず正確にお書きください。おそらく「#1016」ではなく、コンパイルエラー1061: 未定義である可能性のあるメソッドgotoAndPlayを、静的型flash.display:DisplayObject の参照を使用して呼び出しました」ではないかと推測します。

ランタイムエラー1009は、つぎのように説明されています。つまり、キャスト云々の前に、そもそもオブジェクトが参照されていないという意味です。
引用:
評価結果がnullになるオブジェクトは、プロパティを持つことができません。

引用:
riedynaさんは書きました:
	if (info.bytesLoaded==info.bytesTotal) {//ダウンロードが終了したら。
		trace(root);
		// MovieClip(root).gotoAndPlay("contents");
		/*rootをMovieClip()で囲わないと未定義の・・・というエラーが出ることがある。
		出てしまったら、MovieClip(root)と、rootをキャスト*/
		// root.removeEventListener(Event.ENTER_FRAME, loadCheck);//リスナー削除
	}
}

これは、後ろから6行目の、MovieClip(root)と、ここの
MovieClipのキャストをやめるとこの#1009エラーが消えますが、

今度は回避したかったもともとの”#1016 未定義の・・・というエラーが出てしまいます。


----------------
 

えり
Åê¹ÆNo.44527
投稿日時: 2010-3-10 13:17
新米
居住地:
投稿: 23
使用環境:
win,mac
Flash CS4
Re: MovieClipのキャストを使用すると、FlashPlayer10で書き出すと #1009 のエラーが出てしまいます。
お忙しいさ中アドバイス頂きうれしい限りでございます*

本当に恐縮です。。。もう少しお教えください。。



>つまり、キャスト云々の前に、そもそもオブジェクトが参照されていないという意味です。

オブジェクト=root ということでrootが参照出来ていないということでしょうか。。

trace(root);を試させていただきますと、ちゃんと
[object MainTimeline]と返ってくるのですが、
これはrootがきちんと参照されていないことになってしまうのでしょうか。

だとしましたら、MovieClip(root)こちらの部分はどのように記述いたすのが正しい選択なのでしょうか。。


いろいろ#1009、#1061のエラーの原因につきましても調べてみたのですが根本が不理解のため自己解決できませんでした。。
やはりMCをポン!とおいてrootの読み込みを調べる方法は
あまりAS3においてはスマートではないので他の方法のローダーの方がよいのでしょうか。。
ちなみにこちらを参考に勉強させていただきました*
http://fumiononaka.com/TechNotes/Flash/FN0707001.html

恐れ入りますが
あと少しだけアドバイス頂けませんでしょうか。。
すみません!!



野中文雄
Åê¹ÆNo.44528
投稿日時: 2010-3-10 15:52
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: MovieClipのキャストを使用すると、FlashPlayer10で書き出すと #1009 のエラーが出てしまいます。
「何か」が「参照出来ていない」ということです。その「何か」を確かめるのが最優先です。
引用:
riedynaさんは書きました:
オブジェクト=root ということでrootが参照出来ていないということでしょうか。。

「[object MainTimeline]と返ってくる」のであれば、MovieClipインスタンスとして認識されていると考えられます。だとすると、キャストすれば「#1061のエラー」は起こらないはずです。エラーメッセージは「未定義である可能性のあるメソッドgotoAndPlay」なのですか?
引用:
riedynaさんは書きました:
	if (info.bytesLoaded==info.bytesTotal) {//ダウンロードが終了したら。
		trace( MovieClip(root).gotoAndPlay);
		MovieClip(root).gotoAndPlay("contents");
		/*rootをMovieClip()で囲わないと未定義の・・・というエラーが出ることがある。
		出てしまったら、MovieClip(root)と、rootをキャスト*/
		// root.removeEventListener(Event.ENTER_FRAME, loadCheck);//リスナー削除
	}
}

これは、後ろから6行目の、MovieClip(root)と、ここの
MovieClipのキャストをやめるとこの#1009エラーが消えますが、

今度は回避したかったもともとの”#101661 未定義の・・・というエラーが出てしまいます。

引用:
trace(root);を試させていただきますと、ちゃんと
[object MainTimeline]と返ってくるのですが、
これはrootがきちんと参照されていないことになってしまうのでしょうか。

「スマート」な方法より、エラーを解消する方が先決です。エラーの原因がわからぬまま、やり方を変えて動いたとしても、「スマート」以前に「安心」できなくありませんか?
引用:
やはりMCをポン!とおいてrootの読み込みを調べる方法は
あまりAS3においてはスマートではないので他の方法のローダーの方がよいのでしょうか。。


----------------
 

えり
Åê¹ÆNo.44529
投稿日時: 2010-3-10 16:52
新米
居住地:
投稿: 23
使用環境:
win,mac
Flash CS4
Re: MovieClipのキャストを使用すると、FlashPlayer10で書き出すと #1009 のエラーが出てしまいます。
ご回答ありがとうございます!

エラーの件でございますが、
はい、キャストすると「1061のエラー」は起きません。
代わりに以下の、「#1009エラー」がおこってしまうのです。
しかもパブリッシュ設定をFlashPlayer10にした時のみでFlashPlayer9以下では出ないのでございます。

1) MovieClip(root).gotoAndPlay("contents"); 書きますと、
--------------------------------------------------------
TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。
at _fla::loader_1/loadCheck()
--------------------------------------------------------

2) root.gotoAndPlay("contents"); 書きますと、
--------------------------------------------------------
1061:未定義である可能性のメソッドgotoAndPlayを、静的型
flash.display:DisplayObjectの参照を使用して呼び出しました。
--------------------------------------------------------
というエラーが出ます。


こちらを入れさせて頂きましたところ、
trace( MovieClip(root).gotoAndPlay);
--------------------------------------------------------

function Function() {}

--------------------------------------------------------
このように出力パネルに帰ってきました。


>やり方を変えて動いたとしても、「スマート」以前に「安心」できなくありませんか?


申し訳ありません・・・・!
loader_mcをポンと置くのは諦めて、
rootに直接みなおいてしまえと思っておりました。。

もしもう少しお付き合いいただけるようであれば
宜しくお願いいたします。。
(お忙しいと思いますので恐縮で圧死しそうです!!)



野中文雄
Åê¹ÆNo.44530
投稿日時: 2010-3-10 17:36
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: MovieClipのキャストを使用すると、FlashPlayer10で書き出すと #1009 のエラーが出てしまいます。
以下の結果からは、DisplayObject.rootプロパティもMovieClip.gotoAndPlay()メソッドも参照できていると考えられます。だとすると、参照できていないのは、これら以外の「何か」です。フレーム移動した先で、問題が起こっていませんか?移動先をMovieClip.currentFrameにすると、エラーは生じますか?
MovieClip(root).gotoAndPlay(MovieClip(root).currentFrame)

引用:
riedynaさんは書きました:
1) MovieClip(root).gotoAndPlay("contents"); 書きますと、
--------------------------------------------------------
TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。
at _fla::loader_1/loadCheck()
--------------------------------------------------------
...[中略]...
こちらを入れさせて頂きましたところ、
trace( MovieClip(root).gotoAndPlay);
--------------------------------------------------------

function Function() {}

--------------------------------------------------------
このように出力パネルに帰ってきました。


----------------
 

えり
Åê¹ÆNo.44540
投稿日時: 2010-3-11 4:30
新米
居住地:
投稿: 23
使用環境:
win,mac
Flash CS4
Re: MovieClipのキャストを使用すると、FlashPlayer10で書き出すと #1009 のエラーが出てしまいます。


お忙しいさなかありがとうございます!!

はい!以下のステートメントではエラーは発生しません!!


>移動先を
>MovieClip.currentFrameにすると、エラーは生じますか?

>MovieClip(root).gotoAndPlay(MovieClip(root).currentFrame)



>フレーム移動した先で、問題が起こっていませんか?

写真を("contents")から置いてあるだけでございまして、
エラーはでるものの、ローディングバーは動作しております*

新規作成で、何回も1からファイルを作りなおしてみましたので、
移動した先のコンテンツは問題はないように感じますが。。



野中文雄
Åê¹ÆNo.44541
投稿日時: 2010-3-11 4:44
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: MovieClipのキャストを使用すると、FlashPlayer10で書き出すと #1009 のエラーが出てしまいます。
表現の仕方を変えましょう。「フレーム移動した」ことを原因として「何か」が参照できなくなり、エラーとなっている可能性が疑われます。それが、引用されているスクリプトのフレームアクションなのか、移動先フレームのスクリプトなのかわかりません。

引用されているフレームアクションのフレーム移動後のスクリプトはどのようになっていますか。また、移動先フレーム"contents"には、どのようなスクリプトが記述されていますか?可能なかぎりステートメントを削除して、問題箇所を絞り込んでください。→「トラブルの『捜査手順』
引用:
riedynaさんは書きました:
はい!以下のステートメントではエラーは発生しません!!


>移動先を
>MovieClip.currentFrameにすると、エラーは生じますか?

>MovieClip(root).gotoAndPlay(MovieClip(root).currentFrame)



>フレーム移動した先で、問題が起こっていませんか?

写真を("contents")から置いてあるだけでございまして、
エラーはでるものの、ローディングバーは動作しております*


----------------
 

えり
Åê¹ÆNo.44543
投稿日時: 2010-3-11 6:22
新米
居住地:
投稿: 23
使用環境:
win,mac
Flash CS4
Re: MovieClipのキャストを使用すると、FlashPlayer10で書き出すと #1009 のエラーが出てしまいます。
恐縮ですありがとうございます!!


>引用されているフレームアクションのフレーム移動後のスクリプトはどのようになっていますか。また、移動先フレーム"contents"には、どのようなスクリプトが記述されていますか?


引用されているフレームアクションはメインタイムラインの1フレーム目に置かれているMCの1フレーム目に書かれているものです。メインタイムラインの1フレーム目にはstop();だけ記述しております。

移動先フレーム"contents"には何も記述いたしておりません。。。



すみません!!


野中文雄
Åê¹ÆNo.44544
投稿日時: 2010-3-11 7:10
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: MovieClipのキャストを使用すると、FlashPlayer10で書き出すと #1009 のエラーが出てしまいます。
今問題にしているのは、スクリプト全体のどの1ステートメントがエラーの原因かということです。「MCの1フレーム目に書かれている」のは、最初に引用されたスクリプトがすべてですか?なお、先の回答にリンクしたページはご覧になりましたか?
引用:
riedynaさんは書きました:
引用されているフレームアクションはメインタイムラインの1フレーム目に置かれているMCの1フレーム目に書かれているものです。メインタイムラインの1フレーム目にはstop();だけ記述しております。


----------------
 

(1) 2 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

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