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

パスワード:


パスワード紛失

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

スレッド表示 | 古いものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
xStaff
Åê¹ÆNo.12951
投稿日時: 2004-12-1 21:44
新米
居住地:
投稿: 20
使用環境:
WinXp,Flash MX2004(7.2)
Re: タイムライン上の関数の参照ができない
野中さん、ありがとうございます。




私が投稿したソースは簡素化して記述したつもりだったのですが、
簡素化にミスがありました。
また、野中さんのご指摘により、気付いたことがあります。



実際は、
関数aの中のsendAndLoadのonLoadに割り当てた関数から、
同じレイヤのフレーム1の関数bを呼び出すものとなっております。


そういった環境で、関数bを呼び出す箇所で
trace([this]);
を処理したとき、thisの内容としてサーバから返ってきた文字列(LoadVarsだと思います)が出力されました。

ということは、処理しているカーソルといいますか、階層といいますか、
ポジションとしては、onLoadの中のようです。

あてずっぽで、_parent._parentとを付けてやってみましたがダメでした。
onLoadの中から関数bへのパスが思いつきません。


ソースとしては

ムービークリップ上のレイヤ1上のボタンから
_parent.a(); //問題なく処理される。


レイヤ1のタイムライン1フレームに
function a(){


//送信用フォームオブジェクト
var formData : Object;
formData = new LoadVars();
 

//受信用オブジェクト
var receivedData;
receivedData = new LoadVars();

//レスポンス取得後処理
receivedData.onLoad = function() {


  trace([this]); //receivedDataの内容が出力されている様子

this.b();  //処理されていない・・・・

}

//データ取得
formData.sendAndLoad(
"http://192.168.1.101/servlet/GetData",
receivedData,
"GET");

}


//関数b(関数aと同じレイヤ)
function b(){
trace("b called"); //処理されない・・・・
}





このような、環境で関数bは呼び出し可能なのでしょうか?
大変申し訳ありませんが、アドバイスよろしくお願いします。

野中文雄
Åê¹ÆNo.12946
投稿日時: 2004-12-1 17:00
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: タイムライン上の関数の参照ができない
両関数とも「ムービークリップのフレーム1上」ということは、同じスクリプトペイン内ですか? それとも、レイヤーを分けているのでしょうか?

以下のtrace()ステートメントを挿入すると、[出力]パネルにはどのような結果が表示されますか?
引用:
xStaffさんは書きました:
ムービークリップのフレーム1上の関数
trace("outside a():");
trace([this, this.a, this.b]);
function a(){
  trace("a called");  //表示される
  trace("inside a():");
  trace([this, this.a, this.b]);
  this.b(); //処理されない
}


ムービークリップのフレーム1上の関数
trace("outside b():");
trace([this, this.a, this.b]);
function b(){
  trace("inside b():");
  trace([this, this.a, this.b]);
  trace("b called");  //表示されない・・・・
}

関数aから関数bを参照することができません。


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

xStaff
Åê¹ÆNo.12945
投稿日時: 2004-12-1 16:33
新米
居住地:
投稿: 20
使用環境:
WinXp,Flash MX2004(7.2)
タイムライン上の関数の参照ができない
お世話になります。

ムービークリップ上のボタンオブジェクトから
ムービークリップのタイムライン上に記述した関数は参照できるのですが、
その関数から、同じ階層の関数を参照することができません。


基本的な質問で恐縮ですが、アドバイスを頂きたく投稿させていただきます。


ムービークリップ上のボタンイベント
_parent.a(); //問題なし


ムービークリップのフレーム1上の関数
function a(){
trace("a called"); //表示される
this.b(); //処理されない
}


ムービークリップのフレーム1上の関数
function b(){
trace("b called"); //表示されない・・・・
}


関数aから関数bを参照することができません。
thisや_parentや_rootを組み合わせていくつか試したのですが、
参照できません。


とても簡単な解決法がある気がしておりますが、
どなたかご存知の方がみえましたら、よろしくお願いします。

« 1 (2)
スレッド表示 | 古いものから 前のトピック | 次のトピック | トップ

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