• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:難関にぶつかりました )

初心者がActionScript 2.0で難関にぶつかる!

このQ&Aのポイント
  • 初心者がActionScript 2.0を学ぶのは困難です。参考書でも理解するのが難しいため、困っています。
  • 四つのボタンがあり、キーボードのTabキーを使ってボタンを選択し、Enterキーでボタンをクリックする仕組みです。特に「B」ボタンが重要な情報をサーバに送信します。
  • さらにEnterキーを押すと次のページに進むことができます。初心者の私には理解が難しい部分があります。

質問者が選んだベストアンサー

  • ベストアンサー
  • joy_28
  • ベストアンサー率84% (45/53)
回答No.2

totorojpさん、 総じて、難しくしてるような気がしますが、 3)、最後、もう一回Enterキーを押下すると、「次」ボタンと連動して次のページへ進みます。 → ここは、あまり考えてないので、ご自分で考えて頂くとして、以下でいかがでしょうか? ■fla側:2フレームから構成し、第一フレーム目のscriptレイヤーに、以下を記載します。 //ここから this.stop(); _txt.text = "";//サーバーサイドのPHPから返信を表示するダイナミックテキストの設置、初期値は、ブランク var lv:LoadVars = new LoadVars(); lv.onLoad = function(success:Boolean) { if (success) { _txt.text = this.mess;//PHP処理結果の&mess=XXXXX&のXXXを代入 } else { _txt.text = "ロード失敗"; } }; /*こっちの方が簡単だと思いますがね・・・ a.onRelease = function():Void { lv.sendData = "あ"; lv.sendAndLoad("./receiver.php?"+getTimer(),lv); }; b.onRelease = function():Void { lv.sendData = "い"; lv.sendAndLoad("./receiver.php?"+getTimer(),lv); }; c.onRelease = function():Void { lv.sendData = "う"; lv.sendAndLoad("./receiver.php?"+getTimer(),lv); }; */ next.onRelease = function():Void { nextFrame();//次のフレームに移動、停止し、次のページを表示 }; //以下が、ボタンクリックの代わりに、ENTERキーを使うケース var n:Number = 0; this.onEnterFrame = function():Void { if (Key.isDown(Key.TAB)) { n++;//TABキーを押し下げする都度、カウントアップ trace(n); if (n == 1) {//1回目なら、 Selection.setFocus("a");//ボタン a に、フォーカスし、 lv.sendData = "あ";//LoadVarsの変数sendDataに、"あ"を代入 } else if (n == 2) { Selection.setFocus("b"); lv.sendData = "い"; } else if (n == 3) { Selection.setFocus("c"); lv.sendData = "う"; n = 0;//初期値に戻す } } if (Key.isDown(Key.ENTER)) {//ENTERキーを押し下げたなら、 lv.sendAndLoad("./receiver.php?"+getTimer(),lv);//同一階層のreceiver.phpに送信して、処理させ、結果を受け取る } }; //ここまで ■サーバーサイドアプリ側:receiver.phpを設置しました。 <?php $data=$_POST['sendData']; switch ($data){ case 'あ': print '&mess=「'.$data.'」を受け取りました&'; break; case 'い': print '&mess=「'.$data.'」を受け取りました&'; break; case 'う': print '&mess=「'.$data.'」を受け取りました&'; break; } となります。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.1

難関にぶつかりましたか。 しかし何が(どの部分が)難関なのか良くわかりませんねえ。。。 わかる範囲内(私が勝手に想像した範囲内)で, 日本語をコード化すると次のようになるような気がします。 4つのボタンのインスタンス名を, それぞれ「btnA」「btnB」「btnC」「btnNext」とした場合, それら4つのボタンが存在するタイムラインのフレームに書くスクリプト↓。 ---------------------------------------------- //ボタン「A」「B」「C」に「あ」「い」「う」というデータを持たせる btnA.dat = "あ"; btnB.dat = "い"; btnC.dat = "う"; //Tabキー移動順を「A」「B」「C」「次」の順にする btnA.tabIndex = 0; btnB.tabIndex = 1; btnC.tabIndex = 2; btnNext.tabIndex = 3; //ボタン「A」~「C」ロールオーバー時の動作を定義 btnA.onRollOver= btnB.onRollOver= btnC.onRollOver=function ():Void { // 自分自身のフラグをfalseにする this.flag = false; }; //ボタン「A」~「C」プレス時の動作を定義 btnA.onPress= btnB.onPress= btnC.onPress=function ():Void { // もし自分自身のフラグがfalseであれば if (!this.flag) { // 自分自身のデータを出力 trace("「"+this.dat+"」をサーバに送信します。"); // そして自分自身のフラグをtrueにする this.flag = true; // もし自分自身のフラグがtrueであれば } else { //ボタン「次」にフォーカスを当てる Selection.setFocus("btnNext"); // ボタン「次」プレス時の動作を実行 btnNext.onPress(); } }; //ボタン「次」プレス時の動作を定義 btnNext.onPress = function():Void { // 「次へ」を出力 trace("次へ"); }; ---------------------------------------------- ※「制御」→「ムービープレビュー」で動作確認する際は,   プレビューウィンドウで   「制御」→「キーボードショートカットを無効」に   チェックを入れておく必要があります。 > ボタン「B」が持っていた情報を、サーバ上に送くります。 ここは良くわかりません。 私が専門でないためよくわからないという意味もありますが, 送信のしかたや表示のさせかたなどの場合によって変わると思うので何とも言えないという意味もあります。 場合によって変わるので何とも言えませんが, Flash側としては, LoadVarsクラスの sendAndLoad 辺りでなんとかなるのではないでしょうか? ActionScript 2.0 リファレンスガイド sendAndLoad (LoadVars.sendAndLoad メソッド) http://livedocs.macromedia.com/flash/8_jp/main/00002336.html

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • キーを離した際、、、

    超初心者です。 ムービークリップタイプのA、B、C、D、4つのボタンを作成しました。 マウスを各ボタン上に乗せると、色が変わります。 選ばれたボタンを、クリックすると、イベントが発生します。 これをTABキーと連動したいです。 TABキーが離された瞬間、次のボタンへフォーカスが移動する形で、ボタンを選び、そして、決めたボタン上でEnterキーを押したら、イベントを発生させたいです。 例として、最初TABキーを押したら、フォーカスがAボタンへ行きます。 次に、TABキーを離したら、AからBボタンへ行きます。 また、TABキーを離したら、今度は、BボタンからCボタンへ行きます。 この過程中、TABキーをずっと押したまま離さないと、フォーカスが移動しません。 アクションスクリプトのバージョンは2.0です。 こういうのって可能ですか? 可能ならば、ぜひよろしくお願いいたします。

    • ベストアンサー
    • Flash
  • ExcelマクロのSendkeysで処理途中に次のキーが送られる

    Excelのマクロから他ソフトのデータを取り入れています。 Sendkeysを使ってソフトのページを切替えたいんですが、ページが切り替わらないうちにページ表示後用のキーが立て続けに送られてしまい旨くいきません。 今やっているのは、起動済みオフラインのIEでHP上の目次からリンクのページ内容をつぎつぎシートへ写す処理です。 SendKeys "{tab}", True    でHPの次行の目次に移って SendKeys "{enter}", True  でページを開いて SendKeys "^{a}", True    全て選択 SendKeys "^{c}", True    コピー この後Excelのシートにテキストで張付ける。 で、IEに戻ってまた"{Tab}"で次行へ移って・・ ところが2番目の"{enter}"で新ページが開き終わらないうちに3,4番目のキーが送られてしまう様です。 ページが開き終わってから次のキーを送るにはどうすればいいでしょうか?

  • マウスを使わずにコンボボックスの内容を選択するには

    いつもお世話になっています。 Access2000で、マウスを使わずにコンボボックの内容を選択したいのですが、↓ボタンを押下してもデータが選択されず、困っています。↓ボタンを押してしまうと、次のテキストボックスやコンボボックに遷移してしまいます。(TABキーと同じ働きをしてしまいます。) KeyDownイベントを使用したらうまくいくのかと思いコーディングしたのですが、やはり、選択できませんでした。どのようにしたら、↓ボタンを押下してコンボボックの内容を取得できるでしょうか。 どなたかご教授お願いします。

  • WinXPにおけるボタン選択時の色変更方法

    WIN-XPにおいてボタンを操作(押す)する場合、通常はマウスの左クリックを用いますが、マウスを使わずに行う場合は、「Tab」キー何回か押して、所望のボタンを選択し、「Enter」キーを押しますね? この「Tab」キーで選択が画面表示上分かりにくいので、選択した場合の色を変更することができますでしょうか?

  • エクセルでブラウザ操作のVBAを教えて下さい

    現在、やりたいこととしては 以下の動作を指定したX回繰り返す方法で エクセル→alt+tab→Firefoxブラウザのページ→ページ全選択コピ(ctrl+A)ー→alt+tab→エクセル貼り付け→別の成形マクロ実行→alt+tab→Firefoxブラウザのページ→tabキー5回→enter→ページ全選択コピ(ctrl+A)ー→alt+tab→エクセル貼り付け→別の成形マクロ実行→alt+tab→Firefoxブラウザのページ→tabキー6回→enter と繰り返す形を模索しております。 要は、エクセルからブラウザに切り替えて全コピーして、エクセルに貼り付け、 ブラウザに切り替えてtabで次のページ切り替えのボタンを押して同様にコピーペースト、 もう一度切り替えて、今度は前のページ、次のページがあるのでtabボタンを押す回数が1回増えるという形です。 分かりにくい説明かと思われますがよろしくお願い致します。 当方使用環境 OS:Win XP Win7 2機種 エクセル2010 ブラウザ:ファイアーフォックス var23.0.1

  • SQL-Server間でデータのコピーをしたいのですが・・失敗するんです

    大変こまっていますー 状態を説明します Aサーバ(ローカル) Bサーバ(ネットワーク:IP指定) 両方にTable025というデータベースがあり、エクスポートでテーブル事コピーした為 中身は同じ。 その中のABCMstというデータベースがあります。 Aサーバ、Bサーバ別々にABCMstにデータを追加しました。 ■やりたいこと AサーバのTable025のABCMstのABCNumが00001のものを BサーバのTable025のABCMstに追加コピーしたい ※BサーバにはABCNumが00002のものしかありません。 ■実施 (1)AサーバのTable025の上で右クリック→データのエクスポートを選択 (2)データソース元をAサーバにする(元からデータが入ってるためなにもせずに次へ) (3)変換先の選択で サーバー:BサーバのIPアドレス SQL認証にし、IDとパスワードをいれる。 データベースのコンボボックスで「abc025」を選択 次へ (4)テーブルのコピーまたはクエリの指定で「変換するデータの指定にクエリを使用」を選択 (5)SQLステートメントの入力でクエリビルダを選択 (6)列の選択で「ABCMst」をダブルクリック 次へ (7)並べ替えの指定 「>>」マークをクリックして次へ (8)クエリ条件の指定 条件に一致するのみチェックをいれる。 列:[ABCMst].[ABCNum] 演算子:= 値は、[・・・]ボタンをクリックし00001を選択する 次へ (9)SQLステートメントの入力にコマンドが入っていることを確認し、次へ (10)変換元テーブルとビューの選択は何もせずに次へ (11)すぐに実行チェックが入っていることを確認し次へ (12)完了ボタンを押下しデータコピーが始まる。 (13)データを見てみるが、00001のデータが追加されていない・・ やり方が間違っているのでしょうか? 長々と書いてしまいましたがよろしくおねがいします。

  • JavaScript Enterキーを押下時『TAB』の動きを割り当てたい

    教えて下さい。 Enterキーを押下時『TAB』の動きを割り当てたいのですが、おわかりになりますでしょうか?

  • ボタンの有効と無効

    アクションスクリプトの初心者です。 いつも、お世話になっております。 ページtopにA,B,C,D四つのボタンがあります。 各ボタンを押すと、ページA、ページB、ページC、ページDへジャンプします。 ボタンAとB両方を押す前には、ボタンCとDは無効です。 AS2.0です。 流れはこうです。 最初Topページは、A,Bボタンは有効、C,Dボタンは無効の状態。 A(B)ボタンを押下→ページA(B)へジャンプ→戻るボタンを押下→Topページへ戻る。→B(A)ボタンを押下→ページB(A)へジャンプ→戻るボタンを押下→Topページへ戻る。→C,Dボタンが有効になり、押下すると各ページへジャンプする。 大元に以下のように書きましたが、なぜかうまくいきません。 どうぞご教授のほどよろしくお願いします。 btnA.onRelease=function(){ gotoAndStop(pageA);//ページAへジャンプ a = 1; } btnB.onRelease=function(){      gotoAndStop(pageB);//ページBへジャンプ b = 1; } if(0==a+b){ btnC.enabled = false; btnD.enabled = false; }else if(2==a+b){ btnC.enabled = true; btnD.enabled = true; }

    • ベストアンサー
    • Flash
  • ActionScriptに関しての質問

    ActionScriptに関しての質問です。 ボタンがありまして、Enterキーをクリックするとクリックする一瞬ボタンの色が緑から赤に変化します。 同時に次のページへ移動する仕組みです。 困ったこと:Enterキーをクリックしたときのボタン色の変化。 よろしくお願いします。

    • ベストアンサー
    • Flash
  • Excelでリターンキーを押すと横方向に・・・

    Excel2003でEnterキーを押すと通常であれば縦にセルが選択されるようになりますが(例えばA1が選択されている状態でEnterキーを押すとA2,A3,...となる)、Enterキーを押すと横方向にセルが選択されるようになってしまいます(例えばA1が選択されている状態でEnterキーを押すとB1,C1,...となる)。特に何か設定を変えるようなことをした覚えがないのですが、解決するためにはどうすればよいでしょうか。