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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   ActionScript 3.0 特設会議室
     子MovieClipのロードチェックについて
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
nico16
Åê¹ÆNo.35936
投稿日時: 2007-11-2 22:57
新米
居住地:
投稿: 12
使用環境:
WinXP,FlashCS3
子MovieClipのロードチェックについて
mc_parentという親MovieClipの中に、mc_child1,mc_child2,mc_child3?と子MovieClipがあります。
以下のように子MovieClipにgetChildAtを使用してアクセスすると、
var o:int = mc_parent.getChildAt( i ).numChildren;
の部分で、
「TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。」
というエラーになります。(稀に成功します。)
引用:

var n:int = mc_parent.numChildren;
for( var i:int = 0; i < n; i++ )
{
var o:int = mc_parent.getChildAt( i ).numChildren;
}

エラーになる場合はmc_parent.getChildAt( i )がnullなので子MovieClipのロードが終わってないのかと推測しているのですが、ロードチェックはどのように行えば良いでしょうか?
野中文雄
Åê¹ÆNo.35943
投稿日時: 2007-11-3 10:12
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: 子MovieClipのロードチェックについて
私の環境では、以下のエラーになります。

[コンパイルエラー]パネルより引用:
1119: 未定義である可能性が高いプロパティ numChildren に静的型 flash.display:DisplayObject の参照を使用してアクセスしています。

このエラーの原因は、DisplayObject.getChildAt()メソッドの戻り値が、DisplayObjectContainerではないことによります。
引用:
nico16さんは書きました:
var o:int = mc_parent.getChildAt( i ).numChildren;
の部分で、
「TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。」
というエラーになります。(稀に成功します。)
var n:int = mc_parent.numChildren;
for( var i:int = 0; i < n; i++ )
{
	// var o:int = mc_parent.getChildAt( i ).numChildren;
	var o:int = DisplayObjectContainer(mc_parent.getChildAt( i )).numChildren;
}

問題が「ロードチェック」であれば、引用のスクリプトは直接関係がありません。「どのように」修正すべきかは、ロードの処理がわからなければ、具体的な回答は難しいでしょう。


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

nico16
Åê¹ÆNo.35945
投稿日時: 2007-11-3 20:03
新米
居住地:
投稿: 12
使用環境:
WinXP,FlashCS3
Re: 子MovieClipのロードチェックについて
野中文雄さん、返信ありがとうございます。

調べましたら、以下の現象と同じということが分かりました。
http://www.kirupa.com/forum/showpost.php?p=2044416&postcount=5

引用:

* gotoAndStop/nextFrame called
* playhead starts change
* child removed
* getChild code called
* getChild returns null
* new child created and initialized


前回書いたコードに含めていなかったのですが、getChildAtを呼び出す前にgotoAndStopを呼び出していました。
ENTER_FRAMEのイベントを使って、子MovieClipが存在するまで待つようにしたらエラーはでなくなりました。
ただ、たくさんの画像を表示/非表示を切り替えているせいで、子MovieClipがinitializeされるまでに一瞬画面がちらつきます。
他に対処方法がありましたら教えていただけますと幸いです。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

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