• 締切済み

flash(swf)に検索ボックスを埋め込みたい

プログラマーなのでFlashがよくわからず、ここで聞きます。 例えばgoogleなどの検索ボックスをflashの中に埋め込んで検索させたいのですが可能でしょうか? 可能な場合、Flash5でどのようにすればいいでしょうか? よく外付けのtxtファイルなどにテキスト文言が書かれているものもありますし、使えるタグが限られているようなので、簡潔にやり方のわかる方、助けてください(T_T)

みんなの回答

noname#35109
noname#35109
回答No.2

そうですね。 No.1さんの言われる通りで,URLエンコードがネックになります。 しかし,実はURLエンコードせずに検索窓を付けることは可能です。 http://kibinokuni.zdap.jp/goods/yokubarigensan.html 過去に作ってみたものです。 ※WindwsXPのSP2以降やGoogleやAskなどのツールバーを使用している場合は, ポップアップを許可しないと正常に動作しません。 今,作るならちゃんとURLエンコード(escape)させて,作りますが, これを作ったころはFlash4を使っていたため,escape関数自体がありませんでした。 バージョンアップさせても良いのですが, 「とりあえず検索出来るからこのままで良いか~。」 というわけで,URLエンコードせず。そのままにしてあります。 まず「TextField1」というテキストボックスを作り ボタンの中には次のようなスクリプトを書きます。 ●Flash4でのスクリプト↓ //「Web検索」Googleの場合 On (Release) Get URL ("http://www.google.com/search?hl=ja&ie=Shift_JIS&q=" &TextField1, window="_blank") End On //「Web検索」YAHOO!の場合 On (Release) Get URL ("http://search.yahoo.co.jp/bin/query?p=" &TextField1, window="_blank") End On ●FlashMXでのスクリプト↓ //「Web検索」Googleの場合 on (release) { getURL("http://www.google.com/search?hl=ja&ie=Shift_JIS&q=" add TextField1, "_blank"); } //「Web検索」YAHOO!の場合 on (release) { getURL("http://search.yahoo.co.jp/bin/query?p=" add TextField1, "_blank"); } すみません,あいにくFlash5は持っていないため, 実際にはどんなスクリプトになるのかわかりません。 Flash4に近いとは思いますが… 実際にHTMLの検索窓で検索し,アドレス欄に何が入るかを見て, 「検索ワードの部分」を見つけてその部分に 「TextField1」の値を入れてgetURLしているだけです。 やってみて出来なければあきらめるけど, ひょっとしたらできるかもしれない,とりあえずやってみよう! ということでやってみたらできたわけです。 msnサーチはたしかできなかった記憶があります。

参考URL:
http://kibinokuni.zdap.jp/goods/yokubarigensan.html
dongmuan
質問者

お礼

No1さん同様、お返事が大変大変遅くなり申し訳ございません。 下のお礼にも書きましたが、まずMXを購入することにしました。また聞いてしまったら是非ご教授ください。 ありがとうございました。

  • DPE
  • ベストアンサー率85% (666/776)
回答No.1

既存の検索ボックスを貼り付ける方法ではありませんが、閲覧者にキーワードを入力してもらい、それを検索エンジンに渡すといったものは、Flash の機能を利用して作成できます。 実は、Flash に付属のマニュアルにも簡単な作例が載っております。 大まかな操作の流れは、「 ActionScript リファレンスガイド」(ヘルプでは ActionScript リファレンス)の、「 Web アプリケーションと Flash の統合」→「フォームの作成」→「検索フォームの作成」をご参照ください。 日本語の場合はエンコード方式という、厄介な問題があります。 文字を他とやりとりする場合は、送信側と受信側で使用しているエンコードの方式が一致していないと、文字が正しく解釈されない、いわゆる”文字化け”が発生します。 Flash 5 の次の世代である Flash MX は、Flash Player 6 までの swf ファイルを書き出せるようになりました。 Flash Player 6 からは、多くの国の言語に対応するために、標準の文字エンコードとして UTF-8 を採用しましたが、ActionScript で設定することで、これまで日本語の標準とされてきた Shift-JIS にも対応できるようになっています。 しかし、Flash 5 で書き出せるのは Flash Player 5 までで、その Flash Player 5 は UTF-8 に対応していません。利用できるエンコードは Shift-JIS だけです。 検索エンジンとして名高いのは Google と Yahoo! あたりですが。 Google では Flash Player 6 以降と同じく、UTF-8 エンコードを採用しているようです。Flash Player 5 までしか書き出せない Flash 5 では、Google の検索エンジンにキーワードを渡すと文字化けが発生するため、利用できません。 一方、Yahoo! の検索エンジンは Shift-JIS を採用していますので、Flash 5 でも利用可能です。 ---------------------- まず、閲覧者がキーワードを入力する、入力用のフォームを作ります。 ツールボックスから「文字」ツール(「A」のアイコンをクリック)を選んで、テキストフィールドを作ります。 描画したテキストフィールドを選んだ状態で、「ウィンドウ」→「パネル」から「テキストオプション」パネルを開いてください。 テキストフィールドには3種類あり、パネルの一番上のリストでタイプを設定します。今回は閲覧者に入力してもらうことが目的ですから、「テキスト入力」を選択します。 このパネルの中にもう1つ、「変数:」という項目があるかと思います。 入力したテキストが格納される変数の名前を設定する項目で、今回は、Yahoo! の検索エンジンが使っている変数「 p 」を入力します。 デフォルトでは、テキストフィールドには枠や背景がないため、入力する場所が分かりにくくなることがあります。 「ボーダー/背景」の項目にチェックを入れると、テキストフィールドに枠線や背景が描画されるようになります。 テキストフィールド内に表示される文字の色や大きさ、フォント等は、「ウィンドウ」→「パネル」の「文字」パネルで設定してください。 なお、テキストフィールドの種類を「テキスト入力」か「ダイナミックテキスト」にした場合は、なるべく、”_等幅””_ゴシック””_明朝”などのように、”_”で始まる名前のフォントを選択するようにしましょう。 続いて、検索エンジンを呼び出す「検索」ボタンを作ります。 絵を描き、「挿入」→「シンボルに変換」でボタンシンボルに変換します。 ムービーでは、シンボルの分身であるインスタンスを配置して使います。ステージで描いた絵をシンボルに変換した場合は、自動的にインスタンスが作られてそのまま残っています。 ボタンが押された時の指示は、ActionScript というスクリプトを書いて出します。 インスタンスを選択した状態で、「アクション」パネルを開きます。「アクション」パネルは、「ウィンドウ」→「アクション」と選択するか、右クリック( Mac では control +クリック)→「アクション」と選択して開くことができます。 Yahoo! で何かを検索してみて、ブラウザのアドレスバーに注目してください。  http://search.yahoo.co.jp/bin/search?p=・・・ となっているかと思います。 URLに ? で続いているものが、検索エンジンに渡される変数の名前とその内容です。 つまり、Yahoo! の検索エンジンが要求する変数の名前は「 p 」であり、その中にキーワードを入れて検索プログラムを呼び出せばいいことになります。 Flash には、ムービーの中からHTMLで作成されたページを表示する、getURL というアクションがあります。 getURL はCGIに変数を送信することもできますので、このアクションで Yahoo! の検索エンジンにキーワードを渡します。 パネルの上部に「オブジェクトアクション」と表示されていることを確認してから、次のようなスクリプトを書きます。 (↓各行頭に全角のスペースが入っています。コピーして利用する際は、全て半角のスペースかタブに置き換えてください)  on(release)  {   //Yahoo!の検索エンジンを呼び出す   getURL( "http://search.yahoo.co.jp/bin/search" , "_blank" , "GET" );  } 以上で基本的な検索ボックスは完成です。 「制御」→「ムービープレビュー」と選択して、動作を確認してみてください。 テキストフィールドに検索のキーワードを入力し、「検索」ボタンをクリックしてください。ブラウザが起動して、検索結果が表示されます。 描画ツールの使い方・ボタンの作り方・「アクション」パネルの使い方・ActionScript の基本は詳しく書ききれませんので、ヘルプか、ネット上の解説サイト等をご参照ください。

dongmuan
質問者

お礼

お返事が大変大変遅くなり申し訳ございません。 とっても詳細な手法を書いていただき助かります。 結局MXを購入してみることにしました。 UTF-8に対応していないのは厳しいので。 購入したら早速やってみます。 分からなかったらまた聞いてしまうかもしれません・・・ とにかくありがとうございます。

関連するQ&A

  • Flashで検索窓を作るには

    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.text, "_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 が表示されてしまいます。 どこが間違っているのでしょうか。 よろしくお願いします。

    • ベストアンサー
    • Flash
  • FlashのPost受け取り

    FlashのPost受け渡し方法が分かりません。 ネットで検索するとFlash→CGI→Flashや、外部テキストの読み込み方法などはたくさんヒットするのですが、CGI→Flash、HTMLフォーム→Flashというような目的のものは見つかりませんでした。 POST渡しで外部ファイル名を渡し、その外部ファイルからテキストを読み込んで、ダイナミックテキストで表示するというものを作ろうと思っています。 この場合はどのアクションを使うと良いのでしょうか? LoadVars()? loadVariables()? sendAndLoad()? ネットで検索した情報から色々試してみてはいるのですが、全く分かりません。助けてください! 環境: Windows XP Flash MX PHP 4.2.4 よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • FLASHとHTML

    FLASHで作成したと思われるサイトの中に、テキストがあったりしますよね。 swfでは文字のコピペはできませんが、通常のHTMLのようにコピペができる文字もあります。 このようなものを作成するにはどうしたらいいのでしょうか? HTMLをflashで読み込むと、読み込めないタグもあるとききましたが…。 使用しているのはFLASH5です。

  • FLASHで作成した.swfファイルがwwwで表示されない・・・。

    初めて質問致します。 いろいろと検索してみたのですが、どうしても解決できません。 解決方法をご存知の方は、どうか教えてください。 ファイルはFLASH5(english)で作成し、DreamWeaver4.0でHTMLファイルにしています。 HTMLファイル作成後、プレビュー画面ではIEでFLASHが表示されるのですが、ftpでアップロードした後wwwで開くと、FLASHだけが表示されません。 右クリックすると「ムービーをロードできません」というメッセージが・・・。 ソースを見てみましたが、いろいろ検索して出てきたソースとは変わりないようですが、私自身それほどタグには詳しくないので、よくわかりませんでした。 (必要であれば、ソース表示致します) ほかのサイトなどのFLASHは問題なく表示されます。 OSはWindowsXP、ブラウザはIE6.0です。 ほかのパソコンなどでは試していません。 どうぞよろしくお願い致します。

  • flashのswf形式ファイルは検索エンジンの検索対象になりますか?

    Webサイトを作る時にflashでメニューなどを作った場合、その内容、つまりメニューで表示している文字列などは検索エンジン(goo、googleなど)の検索対象になりませんよね? なります? もうひとつ、そのflashの中でリンクを書いている場合、検索エンジンはリンクをたどってサイトの中を検索対象にしてくれるのでしょうか? もうひとつ(マルチ質問ですみません。ご意見があったらお願いします。) flashについては「99%Bad!」という人もいるくらい賛否が分かれているようですが、皆さんは是か非か、どのようにお考えでしょうか? 私は非常に否定的でしたがブロードバンドも普及してきたようですので、どのように使うのがベストかを模索しているところです。よろしくお願い致します。

    • ベストアンサー
    • CSS
  • FLASHが表示されない。

    自作したFLASHの.swfファイルをアップロードして、 ホームページにURLとFLASH表示タグを貼り付けても、 ページにFLASHが表示されません。 「FLASH」と書いてある四角いものが出ます。 どうすれば、表示させることができますか?

  • FLASHを使用した検索フォーム

    FLASHでテキストボックスと検索ボタンを作成しました。 テキストボックスは変数が「subject」となっています。 ボタンのアクションスクリプトは on(press){ this.getURL("http://***.cgi","NAKA","POST"); } となっています。 ここで入れたテキストデータをcgiの検索ワードに直接持っていきたいのですが、どのようにすればいいのでしょうか? cgiの方は、検索ボックスの名前が「word」となっています。 POSTではなく、GETならうまくいくのでしょうか? イマイチFLASHとcgiの連携がわかりません。

    • ベストアンサー
    • CGI
  • 検索した文字列がある行を検索するには

    OPEN "A.txt" QWER gohjoij OPEN "B.txt" OPEN "QWERT" Write A.txt jortyu end と書かれたテキストファイル(ファイル名を"ABC.txt"とする。)があるとします。これを 1.OPEN "*.*"(*=ワイルドカード)という文字列の*.*のみに絞る 2."1."の内" "の中に、"."が無い文字列は無視する うえでリッチテキストボックス1に出力するようにします。リッチテキストボックス1には A.txt B.txt と出力されました。これをさらに[A.txt B.txt]がある行全体を、 1.別のリッチテキストボックス(リッチテキストボックス2)に出力する やり方がわかりません。この例だと、リッチテキストボックス2には OPEN "A.txt" OPEN "B.txt" Write A.txt jortyu と出力したいです。今のスキルだと到底作れそうに無いので、どなたか教えてください。

  • FLASHで外部swfファイルを検索し読み込み表示するには

    FLASHのファイル(2.swf)内に検索窓(テキスト入力欄とボタン)を作成し、その検索窓に特定の文字(ファイル名そのままのような単純なものではない言葉)を入力してボタンを押すことで、予め決めておいた外部swfファイル(3.swfと4.swfのどちらか)を読み込み表示させるということは可能でしょうか。 なお、必要なデータベースは、FLASHとは別の形式のファイル(javascriptなど)を用意するのではなく、swf内に作成したいと思っています。 使用ソフトは、FLASHMXです。よろしくお願いします。 1.exe … 読み込んで再生するためのプロジェクタ 2.swf … 初めに読み込まれているファイル 3.swf … 検索して読み込ませたいファイル 4.swf … 検索して読み込ませたいファイル

  • ホームページでFlash読み込み後、フォームのテキストボックスにメッセージを表示させたいです。

    大きなFlashファイルを読み込みが済んだ時点でJavascriptからそれがわかるイベントってあるのですか? ホームページでFlash読み込み後、フォームのテキストボックスにメッセージを表示させたいです。

    • ベストアンサー
    • Flash