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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   迷える子羊の部屋【初心者専用】
     loadClipしたMCにattachMovieをしても表示されない
投稿するにはまず登録を

スレッド表示 | 古いものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
野中文雄
Åê¹ÆNo.35348
投稿日時: 2007-10-1 17:00
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: loadClipしたMCにattachMovieをしても表示されない
延び延びになってしまいましたが、F-siteの記事「SWFファイルの外部読込みとMovieClip.attachMovie()メソッド」として投稿しました。
引用:
c-geruさんは書きました:
引用:
今回の説明くらい、どこかに書いときましょうかね。

是非。よろしくお願いします。


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

c-geru
Åê¹ÆNo.33855
投稿日時: 2007-6-26 15:12
職人
居住地: 文京区本郷
投稿: 209
使用環境:
10.6.8+ CS5.5
Win7+ CS4
Re: loadClipしたMCにattachMovieをしても表示されない
引用:
今回の説明くらい、どこかに書いときましょうかね。

是非。よろしくお願いします。
野中文雄
Åê¹ÆNo.33847
投稿日時: 2007-6-26 11:24
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: loadClipしたMCにattachMovieをしても表示されない
共有シンボルについてAdobeの英語のFlash TechNote(「共有シンボルのインスタンスがattachMovie/attachSoundで作成できない」の原典)が、それらしきことに少し触れているくらいですね。[Flashcoders]「attachMovie fails on embedded clip in a movie, why?」でも、たまたま同じ話題が議論されています。

今回の説明くらい、どこかに書いときましょうかね。
引用:
c-geruさんは書きました:
この手のこと(内部的な関連や仕組み)について、何かまとめられたモノ(書籍等)ってあるんでしょうか?


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

samorai
Åê¹ÆNo.33845
投稿日時: 2007-6-26 11:18
新米
居住地:
投稿: 19
使用環境:
winXP,Flash8
Re: loadClipしたMCにattachMovieをしても表示されない
c-geruさん 野中文雄さん
ご教授ありがとうございます。

最終的なコード内容としては、c-geruさんのおっしゃるやり方でいこうと思います。

attachMovieはmovieclipであれば、何でも呼び出せると思っていましたが、
野村さんの解説で良くわかりました。

まさか読み込み先のmovieclipのパスが変わってしまうとは。。

かなりはまっていたので助かりました。

ありがとうございました。
c-geru
Åê¹ÆNo.33835
投稿日時: 2007-6-25 23:07
職人
居住地: 文京区本郷
投稿: 209
使用環境:
10.6.8+ CS5.5
Win7+ CS4
Re: loadClipしたMCにattachMovieをしても表示されない
引用:
リンケージ設定された[ライブラリ]のシンボルは、SWFファイルに関連づけられます。つまり、外部ファイルをロードした場合、ロード先MovieClipインスタンスをターゲットにしてMovieClip.attachMovie()メソッドを呼出すと、引数に渡したリンケージ識別子はその外部ファイル内で検索されます。

解説ありがとうございます。納得しました。
この手のこと(内部的な関連や仕組み)について、何かまとめられたモノ(書籍等)ってあるんでしょうか?
野中文雄
Åê¹ÆNo.33832
投稿日時: 2007-6-25 18:05
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: loadClipしたMCにattachMovieをしても表示されない
リンケージ設定された[ライブラリ]のシンボルは、SWFファイルに関連づけられます。つまり、外部ファイルをロードした場合、ロード先MovieClipインスタンスをターゲットにしてMovieClip.attachMovie()メソッドを呼出すと、引数に渡したリンケージ識別子はその外部ファイル内で検索されます。

JPEGファイルには当然[ライブラリ]が存在せず、リンケージ設定したシンボルも作成しようがありません。したがって、ロード先MovieClipインスタンスに対して、MovieClip.attachMovie()メソッドを呼出すことはできません。

ロードできなかった場合も、そのインスタンスには指定した外部ファイルのパスが設定され(MovieClip._urlプロパティ参照)、ロード元SWFとは別個に扱われますので、上述同様MovieClip.attachMovie()メソッドは呼出せません。
引用:
samoraiさんは書きました:
疑問点は、表題の通りなのですが、
ムービークリップに外部画像を読み込んだ後にそのムービークリップの中に
attachMovieをしてもムービークリップが生成されません。
...[中略]...
このようなコードですと、attachMovieが機能しません。
this.createEmptyMovieClip("img_mc",0);
var mcl:MovieClipLoader = new MovieClipLoader();
var mclObj:Object = new Object();
mclObj.onLoadError = function(target_mc:MovieClip, errorCode:String) {
	trace([target_mc, target_mc._url]);  // 確認用
	var parent_mc:MovieClip = target_mc._parent;
	var name_str:String = target_mc._name;
	target_mc.removeMovieClip();
	target_mc = parent_mc.createEmptyMovieClip(name_str, 0);
	target_mc.attachMovie("noImage", "noImage_mc", 0);
};
mcl.addListener(mclObj);
mcl.loadClip("test.jpg", img_mc);


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

c-geru
Åê¹ÆNo.33830
投稿日時: 2007-6-25 16:37
職人
居住地: 文京区本郷
投稿: 209
使用環境:
10.6.8+ CS5.5
Win7+ CS4
Re: loadClipしたMCにattachMovieをしても表示されない
あくまで予想ですが、onLoadErrorが発生したMovieClipは中途半端な状態になっていて、そのまま処理継続できないのでは?

説明にはなりませんが、対処として予めロード用とエラー表示用と2つのmcを作っておくのはどうでしょうか?
this.createEmptyMovieClip("img_mc", 0);
this["img_mc"].createEmptyMovieClip("load_mc", 0);
this["img_mc"].createEmptyMovieClip("error_mc", 1);
var mcl:MovieClipLoader = new MovieClipLoader();
var mclObj:Object = new Object();
mclObj.onLoadError = function(target_mc:MovieClip, errorCode:String) {
	target_mc._parent["error_mc"].attachMovie("noImage", "noImage_mc", 0);
};
mcl.addListener(mclObj);
mcl.loadClip("test.jpg", this.img_mc["load_mc"]);
samorai
Åê¹ÆNo.33829
投稿日時: 2007-6-25 14:07
新米
居住地:
投稿: 19
使用環境:
winXP,Flash8
loadClipしたMCにattachMovieをしても表示されない
疑問に思っている事があるので、知っている方がおられましたら
ご教授よろしくお願いします。

疑問点は、表題の通りなのですが、
ムービークリップに外部画像を読み込んだ後にそのムービークリップの中に
attachMovieをしてもムービークリップが生成されません。

どんな事をしたいかと申し上げますと、
loadClipで外部画像を読み込み、何かしらのエラーが発生した場合、
noImage画像を表示したいと考えています。

エラーが発生したMCをリスナーで知る事が出来ますので、
代替画像を用意して表示するのがスマートかなと。

このようなコードですと、attachMovieが機能しません。

this.createEmptyMovieClip("img_mc",0);
var mcl:MovieClipLoader = new MovieClipLoader();
var mclObj:Object = new Object();
mclObj.onLoadError = function(target_mc:MovieClip, errorCode:String) {
	target_mc.attachMovie("noImage", "noImage_mc", 0);
};
mcl.addListener(mclObj);
mcl.loadClip("test.jpg", img_mc);


どなたかこの疑問が説明出来る方はおられますでしょうか?
よろしくお願い致します。
スレッド表示 | 古いものから 前のトピック | 次のトピック | トップ

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