プロが教える店舗&オフィスのセキュリティ対策術

Flashで検索窓を作ろうとしています。
過去の質問で同様の内容があったのでそれを参考にしましたがうまくいきません。http://oshiete1.goo.ne.jp/qa2477755.html
作業は以下のようにしました。

1.Flash MXで新規ファイルを作成し、ステージ上にテキストツールでテキストエリアを作る

2.テキストエリアを選択してプロパティの「インスタンス名」にq_txtと入力

3.コンポーネントウィンドウからPushButtonをステージ上にドラッグ&ドロップ

4.3でつくったボタンを選択してプロパティの「インスタンス名」にsend_btnと入力

5.3でつくったボタンに以下のスクリプトを設定
on (release) {
getURL("http://www.google.co.jp/search?hl=ja&q="+q_txt.t … "_blank");
}

6.パブリッシュして検索を実行

これで間違っていないと思うのですが、どうしても検索結果は
http://www.google.co.jp/webhp?hl=ja
となり、テキストエリアに入力した内容が反映されません。
過去の回答にある、別の方法も試しましたが、最後の方法
on (release) {
var q = q_txt.text;
getURL("http://www.google.co.jp/search?hl=ja", "_blank", "GET");
}
を使うと、ボタンのサイズなど、関係ない長い値が付いて、その最後にテキストエリアに入力したものが出てくるため、検索には失敗し、結局
http://www.google.co.jp/webhp?hl=ja
が表示されてしまいます。

どこが間違っているのでしょうか。
よろしくお願いします。

A 回答 (1件)

3で配置したボタンは、見かけ上・動作上もなんら普通のボタンと変わりないですが、


プロパティを見るとわかる通り(パラメータではない方のインスタンス名記入欄上)
扱いはボタンではなくムービークリップとなっています

この場合、onイベントでq_txtを参照すると、
そのインスタンス内のq_txtを指すため、
階層の違いから、存在しないという結果が返り、
望むような動作をせず失敗するのだと思います

なので、そのインスタンスから、1・2で作ったq_txtを参照するには、
_parent もしくは _root といった、
q_txt の階層を示す参照用パスが必要です

//5 のスクリプト変更例
on (release) {
getURL("http://www.google.co.jp/search?hl=ja&q=" + _parent.q_txt.text , "_blank");
}
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
バッチリできました!
複数の文字コードを使うサイトのページに載せたいと思っているので、文字コードをいろいろと変えて試してみましたが、それでも2バイト文字の検索に問題はありませんでした。そのあたりはformタグを使うより簡単で良いですね。
formでテキストエリアを作った場合、IEで文字コードによってサイズが変わってしまうというバグ(?)があり、Flashでやりたかったのですが、これでうまく行きました。
ありがとうございました。

お礼日時:2007/11/16 13:23

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