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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     duplicateMovieClipで複製したムービークリップが消えてしまう。
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
ペロー
Åê¹ÆNo.14121
投稿日時: 2005-1-16 2:02
新米
居住地:
投稿: 10
使用環境:
WindowsXP FlashMX2004pro
duplicateMovieClipで複製したムービークリップが消えてしまう。
メインタイムラインにduplicateMovieClipで複製したムービークリップが、タイムラインを進めると消えてしまいます。
ソースは

function cartView() {

for (var i = 0; i<=dax; i++) {
menu.duplicateMovieClip("menu"+i, i);
this["menu"+i]._y = i*80+5;
this["menu"+i].pn_text = this.product[i]["nam"];
this["menu"+i].pp_text = this.product[i]["price"];
this["menu"+i].pnum_text = this.product[i]["num"];
this["menu"+i].idnum = i;
next_button._visible = 1;
}

という記述にしていて、HTML情報を受け取って動的にカートのムービークリップを複製するような仕様にしています。
ですが、一度タイムラインを進めた後、カートが表示される画面に戻ると、カートが表示されていないんです。
多分、duplicateMovieClipを実行した際の深度が原因だと思うのですが、解決策が一向にわかりません。
解る方いましたら、助けていただけませんか?
よろしくお願いします。
空野大二郎
Åê¹ÆNo.14125
投稿日時: 2005-1-16 2:34
職人
居住地: 愛知
投稿: 389
使用環境:
 XP:Home
FlashMX
IE6.0+FlashPlayer7,0,19
CPU:Pentium4 2.26GHz
メモリ:1,024MB
Re: duplicateMovieClipで複製したムービークリップが消えてしまう。
 まいど。
 まず、念のために。

 Flashのリファレンスで「MovieClip.duplicateMovieClip」を調べると、
 『? 親のムービークリップが削除されると、複製された
ムービークリップも削除されます。 ?』
とあります。

 Flashファイルを複製してダミーデータを挿入し、デバッガを
使って複製元のmenuが存在しているか確認してみてください。
引用:
ペローさんは書きました:
ですが、一度タイムラインを進めた後、カートが表示される画面に戻ると、カートが表示されていないんです。


----------------
空野 大二郎 アニメーター作家
桜の道

ペロー
Åê¹ÆNo.14126
投稿日時: 2005-1-16 2:49
新米
居住地:
投稿: 10
使用環境:
WindowsXP FlashMX2004pro
Re: duplicateMovieClipで複製したムービークリップが消えてしまう。
返信ありがとうございます。
ムービークリップが削除されてはいないみたいなんです。
非表示になっているだけのようで、次にカートに入れる
(htmlから情報がくると)まとめて表示されてしまうのですが…。
ソースはこんな感じです。
LocalConnectionを使ってhtmlから情報を受け取っています。

this.onEnterFrame = function() {
receiving_lc = new LocalConnection();
receiving_lc.methodToExecute = function(param1, param2, param3, param4) {
ad._visible = 0;
//二回目以降
//trace(sflag);
//マッチすればただ変数を代入するだけ
for (var i = 0; i<max; i++) {
if (param1 == product[i]["nam"]) {
product[i]["num"] = Number(product[i]["num"])+Number(param3);
this["menu"+i].pnum_text = product[i]["num"];
sflag = 1;
dax = max-1;
cartView(dax);
break;
}
}
if (sflag != 1) {
product[max] = new Array();
product[max]["nam"] = param1;
product[max]["price"] = param2;
product[max]["num"] = param3;
dax = max;
cartView(dax);
max = max+Number(param4);
}
sflag = 0;
param4 = 0;
};
totalSum();
receiving_lc.connect("lc_name");
};
長谷川
Åê¹ÆNo.14127
投稿日時: 2005-1-16 3:06
常連
居住地: 岐阜県
投稿: 84
使用環境:
OS[Windows XP]
ブラウザ[IE]
[Flash MX]
[Dreamweaver MX]
[Fireworks MX]
[FreeHand MX]
Re: duplicateMovieClipで複製したムービークリップが消えてしまう。
 カートがどのようなものか分かりませんがタイムラインを進めて複製したものが一度表示されなくなるとまたタイムラインを元に戻しても複製されたものは元に戻らないと思います。

私が考えた今回の処理

1フレーム目 カート存在
・複製が行われている
・複製されたMCがある
2フレーム目 カート非存在
・複製が行われていない
・複製されたMCがない

 常にカートが存在している場合であれば問題無いのですがそうでなければ_visible=falseなどで一時的に非表示にして常に存在させておくか複製したものの位置や数などを一つずつ記憶しておく必要があると思います。
ペロー
Åê¹ÆNo.14130
投稿日時: 2005-1-16 3:28
新米
居住地:
投稿: 10
使用環境:
WindowsXP FlashMX2004pro
Re: duplicateMovieClipで複製したムービークリップが消えてしまう。
ハセガワさん、返信ありがとうございます。
カートの構造的には、カートが配置されているムービークリップがあるレイヤーの上に入力フォーム等のムービークリップがあるレイヤーを重ねているので、タイムライン上では先に進める処理をして、入力フォーム等のムービークリップをどければどうか?
と試したのですが、やはり無理でした…。
カートが配置されているムービークリップは、フレーム上では常に存在しているのですが、duplicateMovieClipで複製した場合1フレーム目だけに複製されるという事があるのでしょうか?

長谷川
Åê¹ÆNo.14131
投稿日時: 2005-1-16 3:38
常連
居住地: 岐阜県
投稿: 84
使用環境:
OS[Windows XP]
ブラウザ[IE]
[Flash MX]
[Dreamweaver MX]
[Fireworks MX]
[FreeHand MX]
Re: duplicateMovieClipで複製したムービークリップが消えてしまう。
 複製したものを_root上に置くとタイムラインの進行に応じて複製したもの(深度か何か)が変化するというようなことを本で見たことがあります。私自身あまり複製を多用しないのでそういったことにならないのですが、複製する場合は一つ複製用のMCを作ってその中に複製するのが良いみたいです。
ペロー
Åê¹ÆNo.14132
投稿日時: 2005-1-16 3:41
新米
居住地:
投稿: 10
使用環境:
WindowsXP FlashMX2004pro
Re: duplicateMovieClipで複製したムービークリップが消えてしまう。
そうなんですか、ありがとうございます。
さっそく試してみようと思います!
空野大二郎
Åê¹ÆNo.14134
投稿日時: 2005-1-16 4:25
職人
居住地: 愛知
投稿: 389
使用環境:
 XP:Home
FlashMX
IE6.0+FlashPlayer7,0,19
CPU:Pentium4 2.26GHz
メモリ:1,024MB
Re: duplicateMovieClipで複製したムービークリップが消えてしまう。
 まいど。

 できるかぎり、『問題の絞り込み』(野中 文雄著、fumiononaka.comより)を
行ってください。
 複製したムービークリップが「htmlから情報を受け取って」いる部分を
削除しても、代用も可能でしょう。
 問題を絞り込み、状況がシンプルになればなるほど、
解決もしやすいものです。
引用:
ペローさんは書きました:
ムービークリップが削除されてはいないみたいなんです。
非表示になっているだけのようで、次にカートに入れる
(htmlから情報がくると)まとめて表示されてしまうのですが…。
ソースはこんな感じです。
LocalConnectionを使ってhtmlから情報を受け取っています。


 わたしが分かっている範囲では、複製されたムービークリップは、
同じ深度に別のムービークリップが配置された時と、配置されている親の
ムービークリップ(位置としてはthis._parent)がタイムラインから
削除されたときに、対象のムービークリップはタイムライン上から
削除されます。
引用:
ペローさんは書きました:
カートが配置されているムービークリップは、フレーム上では常に存在しているのですが、duplicateMovieClipで複製した場合1フレーム目だけに複製されるという事があるのでしょうか?



 <確認>消えるムービークリップは、どのように消えているのか。
 1:タイムライン上から消える。
 2:_visible = falseになって非表示になっている。
 3:_alpha = 0になって、透明になっている。
 4:ムービークリップ内のテキストエリアが空欄になっている。
 5:同じ深度に上書きされている。
 6:その他

 どうしても現状のままムービークリップの状況を
把握しなければならない場合は、タイムライン上の
MovieClipインスタンス名を取得
し、TextFieldに名前と
プロパティの一部を表示してみてください。


----------------
空野 大二郎 アニメーター作家
桜の道

ペロー
Åê¹ÆNo.14145
投稿日時: 2005-1-16 15:11
新米
居住地:
投稿: 10
使用環境:
WindowsXP FlashMX2004pro
Re: duplicateMovieClipで複製したムービークリップが消えてしまう。
空野大二郎さん、ハセガワさん
ありがとうございました!解決しました。
原因はカートを複製していた深度にあったようで、ハセガワさんに教えていただいた通り、ムービークリップ内で作業をした所うまくいきました。
これからも何かありましたらよろしくお願いします!
本当にありがとうございました!
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

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