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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   迷える子羊の部屋【初心者専用】
     タイムライン上の関数の参照ができない
投稿するにはまず登録を

フラット表示 前のトピック | 次のトピック
投稿者 スレッド
Fumio
Åê¹ÆNo.13003
投稿日時: 2004-12-3 13:30
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
Re: タイムライン上の関数の参照ができない
Bingo! これですっきりしました。
引用:
xStaffさんは書きました:
>つまり、LoadVars.onLoadメソッド呼出し時に、ターゲットのタイムライン(target_mc)が存在しない可能性はありませんか?

のご指摘の箇所が問題でした。

フレーム移動の必要があったら、LoadVars.onLoadメソッドに設定したコールバック関数の最後に挿入すればよいですね。
引用:
関数aを呼び出した直後に、gotoAndPlayでフレームを移動させておりました。gotoAndPlayをコメント化したら、あっけなく動いてしまいました。

多くのプログラミング言語では、インスタンスに対する参照がなくなったとき、「ガーベジコレクション」[*1]によりメモリがクリアされます。参照が保持されている間は、インスタンスが存続します。

MovieClipインスタンスは、この点で特殊です。あくまで、タイムライン上の実体として、扱われます。つまり、参照の有無にかかわらず、親タイムライン(_parent)から実体が消滅したときにインスタンスは破棄されます。インスタンスに設定されたタイムライン変数や、ユーザー定義のプロパティ(メソッド)も運命を共にします。

そして、MovieClipインスタンスの実体がタイムラインから消滅すると、参照にはパスをもたず(文字列表現が"")データタイプ(typeof演算子の戻り値)"movieclip"の何者かが残ってしまったということですね。
引用:
タイムライン上に作った関数は、カーソルがそのタイムライン上でないと利用できない ということだったのですね。

「ソースの簡略化」は、問題を絞込むプロセスです。これが適切にできれば、問題は半分解決したも同じです。要領よくできるかどうかは、多分に経験にも依存します。まずは、やってみることが大切です。

少なくとも、回答者のアドバイス・確認事項にしたがった結果や、ご自分で独自に調べられた情報を詳しく報告された点がよかったと思います。えてしてパニックになってしまうのか、ご自分の質問ばかりに意識がいってしまい、回答者のアドバイスや確認を読み飛ばしてしまわれる例が少なくありません。そうすると、解決が遅くなるばかりか、貴重なスキルアップの機会を逃してしまうことになりがちです。

ともあれ、解決してよかったです。がんばってください。
引用:
今回はflashの基本が理解できていないこと以外に
自分のソースの簡略化が適切でなかったことにも、
大きな問題点があったと認識しております。

_____
[*1]引用:
拙著『オブジェクト指向で考えるActionScript』p.158注[*9]より:
ActionScriptでは「ガーベジコレクション」という技術により、オブジェクトインスタンスは自動的に削除されます。削除してよいかどうかは、そのインスタンスを参照している変数(プロパティ)が存在するかどうかで判断されます。
これは食堂で、お客さんが席を立って帰ったらテーブルの上をかたづけるというのに似ています。グループ客の場合には、その全員が食事を終えて誰も席にいなくなってからかたづけを行います。つまり、複数の変数(プロパティ)がインスタンスを参照している場合は、最後の変数が削除されて参照がすべて失われたときに、オブジェクトインスタンスはメモリーから消去されます。


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

フラット表示 前のトピック | 次のトピック

題名 投稿者 日時
   タイムライン上の関数の参照ができない xStaff 2004-12-1 16:33
     Re: タイムライン上の関数の参照ができない Fumio 2004-12-1 17:00
       Re: タイムライン上の関数の参照ができない xStaff 2004-12-1 21:44
         Re: タイムライン上の関数の参照ができない Fumio 2004-12-1 22:18
           Re: タイムライン上の関数の参照ができない xStaff 2004-12-2 10:16
             Re: タイムライン上の関数の参照ができない sorano 2004-12-2 11:20
             Re: タイムライン上の関数の参照ができない Fumio 2004-12-2 12:21
               Re: タイムライン上の関数の参照ができない xStaff 2004-12-2 14:28
                 Re: タイムライン上の関数の参照ができない Fumio 2004-12-3 9:01
                   Re: タイムライン上の関数の参照ができない xStaff 2004-12-3 9:47
                   » Re: タイムライン上の関数の参照ができない Fumio 2004-12-3 13:30
                       Re: タイムライン上の関数の参照ができない xStaff 2004-12-3 20:19
                   Re: タイムライン上の関数の参照ができない sorano 2004-12-3 10:45

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