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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   迷える子羊の部屋【初心者専用】
     ターゲットパスが分からない
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
rin-ko
Åê¹ÆNo.6352
投稿日時: 2004-4-16 17:09
職人
居住地: 東京
投稿: 397
使用環境:
MacOSX10.5/10.4
WinXP SP3
MX2004Pro/CS3
Re: ターゲットパスが分からない
たぶん、そんなことをしなくても、最初に書かれていたご希望の動作なら今の方法でいけると思いますよー(試したのはFlash5ですけど)。
ボタンにとってthisは配置されたタイムラインを指すという点が問題になっているのではないかと思われますが、違いますでしょうか?
引用:
となるとMovieClip1はボタンではなくムービークリップにして
それとは別に透明なボタンを用意して
2つを重ね合わせる、という形を取るのが理想なのかな(・・;
askaaska
Åê¹ÆNo.6353
投稿日時: 2004-4-16 18:09
新米
居住地:
投稿: 12
使用環境:
Flash暦:2004年3月15日開始
環境:Windows2000Professional、Flash Player7
   Macromedia Flash MX Professional 2004
私の持つ技術:HTML、JavaScript、Perl、Javaは良く分かります。

土日夜はつなげません。
Re: ターゲットパスが分からない
引用:
ボタンにとってthisは配置されたタイムラインを指す

現在のところ
movieClip1._level0.label1 = inputText;
movieClip1._level0.label2 = inputText;
movieClip1._level0.label3 = inputText;
とするとちゃんと値がコピーされることが
なんとか分かりました。

・・・が、MovieClip1をもう一つmovieClip2を同じステージ上に置き
movieClip1._level0.label1 = inputText;
とするとmovieClip2のlabel1、つまり
movieClip2._level0.label1
にも同じ値が入ることがわかりました。

同じ値になってしまうんですね。
びっくり
野中文雄
Åê¹ÆNo.6356
投稿日時: 2004-4-16 21:06
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: ターゲットパスが分からない
Buttonのthisは、ちょっとやっかいです。イベントハンドラメソッドに定義した関数内では、thisはButtonインスタンス自身を参照します。
引用:
rin-koさんは書きました:
ボタンにとってthisは配置されたタイムラインを指すという点が問題になっているのではないかと思われますが、違いますでしょうか?

movieClip1._level0は、_level0と同値です。つまり、Buttonシンボル内に配置した変数のパスは、正しく認識されません(後述引用参照)。
引用:
askaaskaさんは書きました:
movieClip1._level0.label1 = inputText;
movieClip1._level0.label2 = inputText;
movieClip1._level0.label3 = inputText;

とするとちゃんと値がコピーされることが
なんとか分かりました。

引用:
拙著『オブジェクト指向で考えるActionScript』p.114?115より:
ボタンシンボルの内部は、基本的にスクリプトで制御することができません。第1 に、フレームアクションは記述できません。第2 に、シンボル内に配置されたインスタンス[*8]の名前は失われます。第3 に、ボタンシンボルのなかのMovieClip インスタンスにMovieClip アクションを設定しても、無視されます。
[中略]
注[*8]
 Flash MXからはTextFieldオブジェクトが実装され、[ダイナミックテキスト]または[テキスト入力]フィールド(TextFieldインスタンス)にもインスタンス名が付けられるようになりました。ボタンシンボル内に配置すると、MovieClip だけでなくTextField インスタンスも名前が認識されません。
 たとえば、Buttonインスタンスmy_btnのシンボル内に、MovieClipとTextFieldそれぞれのインスタンスmy_mcおよびmy_txtを配置して、[ムービープレビュー]で確認してみます。[デバッグ]メニューから[変数のリストアップ]を実行すると、以下のような表示が確認できます。なお、テキストフィールドには、インスタンス名とは別に変数名としてmyVar を設定しました(テキストフィールドの内容は"Text")。

○[変数のリストアップ]の一部抜粋
変数_level0.myVar = "Text"
ボタン: ターゲット="_level0.my_btn" <- ボタンシンボル内のテキストフィールドの変
数が配置されたタイムラインで認識

ムービークリップ: ターゲット="_level0.my_btn.instance1" <- MovieClipインスタンス名消失
テキスト編集: ターゲット="_level0.my_btn.instance2" <- TextFieldインスタンス名消失
variable = "myVar", <- テキストフィールドに設定した変数名
text = "Text",

 「ムービークリップ: ターゲット」と「テキスト編集: ターゲット」の部分が、それぞれMovieClipとTextFieldインスタンスのパス情報です。設定しておいたインスタンス名が失われ、instance1、instance2という未設定の場合の名前が表示されています。また、テキストフィールドに変数名myVarを設定したところ、Buttonインスタンスを配置した'_level0' つまりメインのタイムライン('_root')にあるものと誤認されています。
 なお、ボタンシンボル内に別のButtonインスタンスを配置すると、大もとのボタンシンボルのアニメーション自体正しく行われません。


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

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

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