個人事業主の方必見!確定申告のお悩み解決

ActionScriptの記述に関して非常に困っています。
シンボル(ムービー)内に配置したTextinputコンポーネントの値を取得しようとしています。
ムービークリップ名.シンボル名.Textinput名.text をtraceすると未定義となります。
※同様に「テキスト入力」を配置した場合は、読めます。
※また、_x を表示すると値が見れるのでパスの指定は問題ないように思えます。
ムービー内のTextinputには、特殊な値参照が必要なのでしょうか?
毎度、BP頼りで申し訳ありません。
どなたか、宜しくお願い致します。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

#1です。


状況がわかりましたし,確かにそうなりますね(私は Flash 8 ですが)。

原因はわかると言えばわかります。
コンポーネントがステージ上に呼び出されたのは良いけど,まだ目覚めていない状態のようです。


別のボタンを作成して,

--------------------------
on (release) {
trace(C.A.B.text);
}
--------------------------

と書いておいて,
まず最初に作成されたボタンをクリック後,
このボタンをクリックするとちゃんと TextInput の text プロパティは取得されます。



なかなか,良い対処法が思いつきませんが,
1つの対処法として,シンボルA 内の TextInput 自体に次のように書いておきます。

------------------------
on (load) {
trace(this.text);
}
------------------------

そして,作成されたボタンをクリックすると,
TextInput の text プロパティ が取得されます。

あまり良い対処法ではありませんが...。
    • good
    • 0
この回答へのお礼

sassakun様

お世話になります。
上記の対応で、上手くいきました。
目的を何とか果たせましたので、助かりました。
どうも有難うございました。
※試してみましたが・・Buttonも同様ですね。
sassakun様、今後とも宜しくお願いします。

お礼日時:2007/07/07 18:37

Flashドキュメンテーション


TextInput コンポーネント > TextInput クラス
http://livedocs.adobe.com/flash/8_jp/main/000040 …

上のURLページの半分より少し上に,

> TextInput クラスのプロパティ一覧
> ---------------
> TextInput.text
> TextInput コンポーネントのテキストの内容を設定します。

にも書いてありますし,
質問でも書かれていらっしゃるように,
「.text」プロパティで普通に取得できましたよ。

_root のステージ上に,TextInputコンポーネントを配置し,
そのTextInputコンポーネントを選択した状態で,
下のプロパティインスペクタからインスタンス名を付けます。
たとえば,「myInput」 というインスタンス名をつけたとします。

同じくステージ上にボタン(ボタンシンボルのインスタンス)を作成し,
そのボタンに,

---------------------
on (release) {
trace(myInput.text);
}
---------------------

もしくは,

---------------------
on (release) {
trace(_root.myInput.text);
}
---------------------

と書き,「制御」→「ムービープレビュー」。
ムービープレビューで表示された,TextInput に何かを記入し,
ボタンをクリックするとちゃんと TextInput に記入した文字列が取得できました。



> ムービークリップ名.シンボル名.Textinput名.text

この場合に限らずシンボル名はスクリプトに全く関係しません。
シンボル名は,FLAファイルオーサリングツール(つまりFlash作成ソフト)内だけにある,
人間の使い勝手を考えただけのシンボルの名前で,
SWF 内に持ち込まれることはありませんから,全く関係しません。

 (ターゲットパス).インスタンス名.text

です。

この回答への補足

sassakun様
回答、有難うございます。
_root のステージ上の,TextInputコンポーネントは、.textで読めています。
しかし、新規シンボル上に配置したTextInputが読めません。
詳細手順を下記に記述させていただきます。もし、お時間があればお試し下さい。
(1)挿入-新規シンボルで新規シンボルを作成
 名前「A」
 タイプ「ムービー」
 リンケージ 識別子「A」
  ・ActionScriptに書き出し 「チェック」
  ・最初のフレームに書き出し 「チェック」
(2)「A」シンボル上にTextInputコンポーネントを配置
 インスタンス名「B」
(3)_rootへボタンを配置
(4)ボタンのインスタンスへアクション記述
on (release) {
this.createEmptyMovieClip("C",100);
C.lineStyle(1,0x0000FF);
C.attachMovie("A","A",100);
trace(C.A.B._x); //※1 
trace(C.A.B.text); //※2
}
ボタンをクリックすると、※1は正常表示、※2未定義になります。
TextInputではなく、T「テキストツール」で作成した入力エリアは、同様の手順で読めています。
ちなにFlashは、「Flash CS3 Professional」を使い、WindowsXPです。
sassakun様、皆様 御存知の方がおられたら宜しくお願いします。

補足日時:2007/07/07 14:22
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング