- ベストアンサー
actionscript 3.0 勉強中の者です。インスタンスの行進を続けながら方向キーを操作する方法を教えてください。
- actionscript 3.0 勉強中の者です。インスタンスにあらかじめ、シンボル内の編集にて、左右対称の画像を同じタイムライン内に配置し、ループ状態にして行進させる方法を教えてください。
- キーを押す前は元気よく行進しているのですが、ボタンを押してインスタンスを動かしたとたんに行進をやめてしまいます。行進を続けながら方向キーの操作を行うにはどのようにすればよいでしょうか?
- 追加するコードのサンプルがあれば、教えていただけると助かります。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
関連するQ&A
- FLEX 外部asの関数を実行する方法。
nl.platipus.RenaultJointDevelopment.controls.GearBox.asというasの中に下記の関数があります。 private function makeLeverInteractive(param1:String) : void { switch(param1) { case "clickable": { lever.buttonMode = true; lever.useHandCursor = true; if (!lever.hasEventListener(MouseEvent.CLICK)) { lever.addEventListener(MouseEvent.CLICK, handleLeverClick, false, 0, true); } if (lever.hasEventListener(MouseEvent.MOUSE_DOWN)) { lever.removeEventListener(MouseEvent.MOUSE_DOWN, handleLeverMouseDown); } if (lever.hasEventListener(MouseEvent.MOUSE_UP)) { lever.removeEventListener(MouseEvent.MOUSE_UP, handleLeverMouseUp); stage.removeEventListener(MouseEvent.MOUSE_UP, handleLeverMouseUp); } break; } case "draggable": { lever.buttonMode = true; lever.useHandCursor = true; if (lever.hasEventListener(MouseEvent.CLICK)) { lever.removeEventListener(MouseEvent.CLICK, handleLeverClick); } if (!lever.hasEventListener(MouseEvent.MOUSE_DOWN)) { lever.addEventListener(MouseEvent.MOUSE_DOWN, handleLeverMouseDown, false, 0, true); } if (!lever.hasEventListener(MouseEvent.MOUSE_UP)) { lever.addEventListener(MouseEvent.MOUSE_UP, handleLeverMouseUp, false, 0, true); stage.addEventListener(MouseEvent.MOUSE_UP, handleLeverMouseUp, false, 0, true); } break; } default: { lever.buttonMode = false; lever.useHandCursor = false; lever.emphasize = false; if (lever.hasEventListener(MouseEvent.CLICK)) { lever.removeEventListener(MouseEvent.CLICK, handleLeverClick); } if (lever.hasEventListener(MouseEvent.MOUSE_DOWN)) { lever.removeEventListener(MouseEvent.MOUSE_DOWN, handleLeverMouseDown); } if (lever.hasEventListener(MouseEvent.MOUSE_UP)) { lever.removeEventListener(MouseEvent.MOUSE_UP, handleLeverMouseUp); stage.removeEventListener(MouseEvent.MOUSE_UP, handleLeverMouseUp); } break; break; } } return; }// end function このmakeLeverInteractiveという関数をnl.platipus.BasicATM.InhibitorSwitchAnimation.InhibitorSwitchAnimation.asの中で、 クリックすると実行するように書きたいのですが、できますでしょうか? もし、できるのであればその方法も教えていただけると助かります。
- 締切済み
- Flash
- CLICKイベントと、MOUSE_DOWNイベント
AS3です。 CLICKイベントと、 MOUSE_DOWN、MOUSE_UPイベント って 併用できないのでしょうか? 画像のギャラリーを作っています。 クリックしたときに、ボタンの色が一瞬変わって、 ギャラリーの画像も変わるものを作ろうとしています。 addEventListener(MouseEvent.MOUSE_DOWN, mDown, false, 0, true); addEventListener(MouseEvent.MOUSE_UP, mUP, false, 0, true); addEventListener(MouseEvent.CLICK, mClick, false, 0, true); こうすると、 mDown、mUPのハンドラ関数は実行されるのですが mClickのハンドラ関数は無視されます。 併用できない場合、上記のことを達成するには どのようにみなさん書かれているのでしょうか? ご存知の方いらっしゃいましたら、 何卒よろしくお願いいたします。
- ベストアンサー
- Flash
- JavaScript でキーを送る
JavaScript でキーを送る のはどうしたらいいのでしょうか。 キーボードからではなく、自動的に任意のキーを押させたいのです。 // aキーのkeydownイベントを起こす var _e = document.createEvent("KeyboardEvent"); _e.initKeyEvent("keydown", true, true, null, false, false, false, false, 65, 0); document.getElementById("dummy").dispatchEvent(_e); いろいろ検索して上記のも試しましたが、IE8では動作が確認できませんでした。 IEじゃ無理なんでしょうか。
- ベストアンサー
- JavaScript
- もっとなめらかな線を描く方法
マウスダウンしたままマウスを動かすと軌跡が残るようにしてマウスアップでそれが終わるという、一般的な「線を描く」というプログラムをActionScript3で書きました。 しかし、以下のコードでは物足りないのです。もっとなめらかに線を描きたいのです、このコードではカクカクしていると感じます。updateAfterEventもしてみましたが、まだ満足できません。よいアルゴリズムなど、ご存じの方おりましたらアドバイスを下さい。よろしくお願いします。 言語は、ActionScript3で回答願いたいですが、AS2やAS1や他の言語しか知らないけど改善方法は思いつくといった場合、その言語でも構いません。なんとか翻訳してみようと思います //フレームアクションです var nowdown:Boolean=false; var oldX:Number=0; var oldY:Number=0; var g:Graphics=this.graphics; g.lineStyle(5,0x00ffff); stage.addEventListener(MouseEvent.MOUSE_DOWN,PushPen); function PushPen(e:MouseEvent):void{ trace("down"); nowdown=true; oldX=stage.mouseX; oldY=stage.mouseY; } stage.addEventListener(MouseEvent.MOUSE_MOVE,MovePen); function MovePen(e:MouseEvent):void{ trace("move"); if(nowdown){ trace("move","if"); g.moveTo(oldX,oldY); g.lineTo(stage.mouseX,stage.mouseY); oldX=stage.mouseX; oldY=stage.mouseY; e.updateAfterEvent(); } } stage.addEventListener(MouseEvent.MOUSE_UP,UpPen); function UpPen(e:MouseEvent):void{ nowdown=false; }
- ベストアンサー
- Flash
- クライアントマシンからルーターの自動制御を行う(Java Script操作)
初心者です。 無線ルーター(Webcaster110)につながっているクライアントマシンから定期的にルーターへ命令を送り、ルーターを再起動させたいと思っています。 ブラウザで192.168.1.1でルーターにアクセスし、解析したところ、再起動ボタンをクリックする実態は以下になります。 <INPUT TYPE="button" NAME="reboot_only" VALUE="再起動" ONCLICK="reboot_kind(this,'0','1')"> なお、このreboot_kind(this,'0','1')の実態は /scripts/st_mainte.js に記述されており、該当箇所は function reboot_kind(field, dis_flg, lev) { var form = field.form; var ret = true; ret = Disabled_Action(dis_flg, field.name); if (ret != true) return; switch (lev) { case "st_pro": if (form.st_pro.disabled != false) { alert("「確認」ボタンをクリックしてから「送信」ボタンをクリックしてください。\n\n※設定した値が不正な値の場合、エラーメッセージが表示されます。"); form.BUTTON_FLAG.value = "0"; return false; } form.action = "/cgi-bin/st_reboot.cgi"; form.target = "_top"; form.CGI_OK_PATH.value="/reboot_update1.html"; form.REBOOT_LEVEL.value = "0"; form.BUTTON_FLAG.value = "1"; form.submit(); return true; case "0": ret = confirm ("設定したデータを本商品へ設定し、再起動を行います。\nよろしいですか?\n\n※再起動のあと、設定したデータが反映されます。"); break; case "1": ret = confirm ("本商品の再起動を行います。\nよろしいですか?\n\n※設定したデータは反映されません。"); break; case "2": ret = confirm ("本商品を初期設定へ戻し、再起動を行います。\nよろしいですか?\n\n※お客様が設定したデータはすべて失われます。"); break; case "3": ret = confirm ("本商品をシャットダウンして電源を切れる状態にします。\nよろしいですか?\n\n※電源投入時、設定したデータが反映されます。"); if (ret == true) { form.CGI_OK_PATH.value = "/reboot_shutdown.html"; } break; case "4": ret = confirm ("本商品をシャットダウンして電源を切れる状態にします。\nよろしいですか?\n\n※設定したデータは反映されません。"); if (ret == true) { form.CGI_OK_PATH.value = "/reboot_shutdown.html"; } break; } if (ret != true) { form.BUTTON_FLAG.value = "0"; if (dis_flg != "0") { field.disabled = false; } return false; } form.REBOOT_LEVEL.value = lev; form.submit(); return true; } function st_backupconf() { var ret; var form; var button; ret = false; button = '9'; document.st_backupconf_exec.BUTTON_EXEC.disabled = true; if(1 == document.st_backupconf_exec.BUTTON_FLAG.value){ alert("実行中です。"); document.st_backupconf_exec.BUTTON_EXEC.disabled = false; return false; } document.st_backupconf_exec.BUTTON_FLAG.value = "1"; button = Get_radio_checkedvalue(document.st_backupconf_form.ACTION_SEL); switch(button){ case '0': form = document.st_backupconf_save; form.ACTION_KIND.value = "0"; ret = confirm("設定データの保存を行います\n\n\n" + "※設定データを復元する際、現在設定中のWeb設定ログインパスワードを入力する必要があります\n" + "※現在の設定を本商品に反映したあとに保存することを推奨します"); break; case '1': form = document.st_backupconf_restore; ret = Null_NG(form.PASSWORD); if (ret != true) break; if(form.PASSWORD.value != ""){ ret = CheckID(form.PASSWORD); if (ret != true) break; } ret = Null_NG(form.UPLOAD_FILE); if (ret != true) break; ret = CheckFilePath(form.UPLOAD_FILE); if(false == ret) break; form.ACTION_KIND.value = "1"; ret = true; break; default: ret = false; break; } if (ret == true) { form.submit(); }else{ document.st_backupconf_exec.BUTTON_FLAG.value = "0"; document.st_backupconf_exec.BUTTON_EXEC.disabled = false; } return ret; } となっています。 Perlで書いたスクリプトをリモートマシンのCrontabで毎日走らせて実現できないかと考えています。どこからはじめればよいかご教授いただけると幸いです。
- ベストアンサー
- JavaScript
- AS3.0 動的に追加したインスタンスについて
以下のようなコードで、ブロック崩し的なものを作ろうとしています。 .flaファイルのステージ上には、プレイヤーが操る左右に動く棒状の自機があります。 ボールはステージにあらかじめ配置せずに、コードの中でnew演算子で呼び出して、最初は自機の子要素として自機にくっついており、スペースキーを押すとボールがステージの子要素に変わり、発射されるようにしたいのですが、以下のコードだとエラーになります。 ~略~ public class Main extends MovieClip { var vx:int; public function Main():void { init(); } function init():void { vx = 0; var ball:Ball = new Ball(); ←ここについての質問です player.addChild(ball); ball.x = 0; ball.y = 0; stage.addEventListener('keyDown',onKeyDown); stage.addEventListener('keyUp',onKeyUp); stage.addEventListener('enterFrame',onEnterFrame); } function onKeyDown(e:KeyboardEvent):void { if (e.keyCode == Keyboard.LEFT) { vx = -5; } else if (e.keyCode == Keyboard.RIGHT) { vx = 5; } else if (e.keyCode == Keyboard.SPACE) { stage.addChild(ball); ←この行でエラーが出ます。 ball.x = player.x; ball.y = player.y; } } ~以下略~ この場合、「1120: 未定義のプロパティ ball へのアクセスです。」と、エラーが出てしまいます。 ですが、ボールをステージにあらかじめ配置しておくと、うまくいきます。 子要素を変えなくても作れるとは思うんですが、 あえてそうするなら、new演算子で動的に配置したインスタンスの場合、 どのようなコードを書いたらよいでしょうか? ご教授お願いします。
- ベストアンサー
- Flash
- actionscript3.0でボタン操作無効化
flashのHPを作っております。 (mc)ボタンを配置しクリックすると画面の背景が変わる操作をしたいと思っており(top、new、main・・・など) 下記のHPのような http://www.mediacreator.jp/tutorials/show_tutorial.asp?id=69&pn=3 操作ボタンを作っております。 上記HPは2.0で製作されているため、3.0に改変し、 アクションを下のようにしました。 var buttonNames= new Array("button1", "button2", "button3", "button4"); button1.buttonMode = true; button2.buttonMode = true; button3.buttonMode = true; button4.buttonMode = true; button1.addEventListener(MouseEvent.CLICK, button1click); button2.addEventListener(MouseEvent.CLICK, button2click); button3.addEventListener(MouseEvent.CLICK, button3click); button4.addEventListener(MouseEvent.CLICK, button4click); function resetButton(buttonName){ for(var i = 0; i < buttonNames.length; i++){ if(buttonNames[i] != buttonName){ this[buttonNames[i]].gotoAndStop(1); this[buttonNames[i]].enabled = true; } } } function button1click(event:MouseEvent):void { resetButton(button1); this.gotoAndStop(2); this.enabled = false; } function button2click(event:MouseEvent):void { resetButton(button2); this.gotoAndStop(2); this.enabled = false; } function button3click(event:MouseEvent):void { resetButton(button3); this.gotoAndStop(2); this.enabled = false; } function button4click(event:MouseEvent):void { resetButton(button4); this.gotoAndStop(2); this.enabled = false; } コンパイルエラーは無くなったのですが、ボタン自体が動いてくれません。 どこが間違っているか分かる方、お教え下さい!
- 締切済み
- Flash
- ファンクションキー制御?
こんにちわです。 タイトル通りなのですが、 JSでは、 function kdown(e) {var msg =""; var flg = 1; switch(window.event.srcElement.tagName){ case "INPUT" :if(event.srcElement.type != "text" && event.srcElement.type != "password" && event.keyCode!=9 && event.keyCode!=16 && event.keyCode!=32){return false;}else{flg=0;}break; case "TEXTAREA" :flg = 0;break; case "SELECT" :flg = 0;break; case "A" :flg = 2;break; } switch(event.keyCode){ case 8 :msg = "BS";break; case 78 :if(event.ctrlKey){msg = "Ctrl+N";}break; case 82 :if(event.ctrlKey){msg = "Ctrl+R";}break; case 116 :msg = "F5";break; case 122 :msg = "F11";break; } if(event.altKey){msg = "Alt";} if (flg == 0 ){switch(event.keyCode){case 8 :msg = "";break;case 13 :msg = "";break;}} else if (flg == 2 && event.keyCode==13)msg = ""; if(msg != ""){event.keyCode = 0;return false;}else{return true;} } document.onkeydown = kdown; こんな感じに制御するのを、 アクションスクリプトで制御出来ますか? HTMLにこのJS埋め込んでも、FLASHの所クリックして、 各キー押すと意味なくなってしまうので・・ F5やF11など使用されたくないのですが・・・ 入れ替えなどでも良いのですが。。。 宜しくお願いします。
- 締切済み
- Flash
- addEventListener の第三引数の意味
addEventListener の第三引数の意味を教えてください。 MDNでは element.addEventListener - MDN https://developer.mozilla.org/ja/DOM/element.addEventListener 「true の場合、useCapture は、ユーザがキャプチャを開始したいことを示しています」 と書いてあり何のことやらさっぱり分かりませんでした。 一応下記のサイトを見て表面的な動きは理解しました。 addEventListener の第三引数について - hogehoge @teramako http://d.hatena.ne.jp/teramako/20070126/about_useCapture_of_addEventListener 以下の順で処理される。 1 親のtrue 2 子のtrue 3 子のfalse 4 親のfalse それは分かったのですが、どういうときに使い分けるのかということが結局分かりませんでした。おそらくはほとんどの場合でどちらでもいい・意識する必要が無いのではないかと思いますが、しかし一応きちんと理解しておきたいと思っています。 ◎addEventListener の第三引数の意味 ◎addEventListener の第三引数を ・trueにした方がいいケース ・falseにした方がいいケース このあたりを教えてください。 よろしくお願いします。
- ベストアンサー
- JavaScript
- これを実行するには
私の知り合いにプログラムを作ってもらったのですが、どうすればよいのかまったくわかりません。どうすればよいでしょうか。 ↓このようなものです。 #include <stdio.h> #include <stdlib.h> #include <time.h> typedef int BOOLEAN; BOOLEAN TRUE = 1; BOOLEAN FALSE = 0; int main(void) { int wc,c,rnd; BOOLEAN dec[50] = {FALSE}; c = wc = 0; dec[0] = TRUE; srand(time(NULL)); while(1){ rnd = rand() % 49; if(dec[rnd] == FALSE){ dec[rnd] = TRUE; if(wc == 6){ printf("%0*d\n",2, rnd); c++; wc = 0; if(c == 49){ break; } } else{ printf("%0*d,",2, rnd); c++; wc++; } if(c == 24){ printf("00,"); c++; wc++; } } } return 0; }
- ベストアンサー
- その他(プログラミング・開発)
お礼
細やかなご説明ありがとうございます。 なるほど、勉強中とのこともあり、ついつい外側のメッソドをあら探しする ことに走ってしまいがちみたいですが、今ひとつプロットを見据えて取り組みたいと思います。ありがとうございました。またよろしくお願いします。