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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     removeChild後のタイムライン
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
ebi
Åê¹ÆNo.49791
投稿日時: 2013-4-26 19:09
フォーラム芸人
居住地: nagoya
投稿: 926
使用環境:
.6.8
CS6
<参考書>
・基本からしっかりわかるActionScript 3.0(既読)
・ActionScript3.0プロフェッショナルガイド(進行中)
・ActionScript3.0パフォーマンスチューニング(未読)
・ActionScript 3.0 逆引きクイックリファレンス(購入予定...
removeChild後のタイムライン
こんにちは。ebiです。
「呼び出し元の子?」から派生した壁です。

コマツさんのアドバイス通り、
「MovieClip(parent)」で試したところ、removeChildはできた(消えた)のですが、
今度は違うエラーが出てしまいました。

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


今度は「ないものを参照しようとしてるぞ!」と怒られてるようです。

A_MC以外、参照してないはずなのですが。
trace(MovieClip(parent).name); しても「A_MC」と出力。合ってます。
他に参照してるものが見当たらない…

なんだコレー? なんだコレー? と、いろいろやってるうちに、
このエラーが出るのに、ちょっと時間がかかる事に気付きました。
10フレーム再生した分くらいの時間。MARUも10フレーム。

ハッ これは、もしかして…  と思い(ここまで2時間)

removeChildの前に、stop();としたところエラー出なくなりました。

MARU、消えてないじゃん!

どうやら、removeChildしたにも関わらず、
MARUのタイムラインが生きているようで、
もう一度1フレーム目に戻り、再生を続け、2回目の10フレーム目で、
再びMovieClip(parent)を参照、今回のエラーが出ているようなのです。

AS2.0のremoveMovieClip()のような挙動を期待してたのですが
これでは、visible=false と変わりません…

2回目の参照が「A_MC」ではなく「null」になる点で
visibleのように、ただ非表示になっているわけではなく、
"どこか" に引っ込んでいるようなのですが、存在はしてます。
まるで袖に引っ込めたはずのキャストがまだ歌っとる! 状態です。

これはいったい、どういうことなのでしょう。
どうすれば、タイムラインも含め完全に消す事ができるのでしょう?
メモリから消しちゃいたいんです。ガベコレってほしいんです。

よろしくおねがいします。

※間違えてコーダーズルームに投稿しちゃいました…すいません
野中文雄
Åê¹ÆNo.49792
投稿日時: 2013-4-26 19:52
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: removeChild後のタイムライン
ガベージコレクタはタクシーと違って呼びつけられず、路線バスのように来るまで待つしかありません。それまでの間、手作業で以下を行います。

1. DisplayObjectContainer.removeChild()メソッドで表示リストから除く
2. DisplayObject.removeEventListener()メソッドでイベントリスナーを削除する
3. MovieClip.stop()メソッドで再生ヘッドを止める
4. インスタンスへの参照をすべて破棄する

Loaderオブジェクトで読込んだSWFには、Loader.unloadAndStop()メソッドが使えます(「外部から読込んだSWFをメモリから消し去るには」参照)。

なお、拙著『ActionScript 3.0パフォーマンスチューニング』をお持ちの方は、p.212?の05-03「インスタンスをメモリから消し去るには」をお読みください。
引用:
ebiebiさんは書きました:
2回目の参照が「A_MC」ではなく「null」になる点で
visibleのように、ただ非表示になっているわけではなく、
"どこか" に引っ込んでいるようなのですが、存在はしてます。


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

ebi
Åê¹ÆNo.49793
投稿日時: 2013-4-27 0:52
フォーラム芸人
居住地: nagoya
投稿: 926
使用環境:
.6.8
CS6
<参考書>
・基本からしっかりわかるActionScript 3.0(既読)
・ActionScript3.0プロフェッショナルガイド(進行中)
・ActionScript3.0パフォーマンスチューニング(未読)
・ActionScript 3.0 逆引きクイックリファレンス(購入予定...
Re: removeChild後のタイムライン
野中さん、ありがとうございます。

お餅です! ペッタンペッタン 参考にさせて頂きまーす。

ガベコレさんが路線バスなのは心得ておりましたが、
(たぶんこれも野中さんのご著書で知った事)
再生ヘッドまで止めなきゃいけないのは知りませんでした。

理解&解決したら、自己レスしときまーす。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

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