• 締切済み

プログラミング教えてください

Adobe flashソフトを使ってゲーム を作りたいのですが アクションスクリプト(プログラム )がわかりません 内容はドラックアンドドロップです シンボルを1つ作ります。 シンボル名は[block1]にします。 それを画面左に設置します。 そのシンボル[block1]にカーソル を合わせドラッグandドロップして 画面右に何個も移動させるプログラ ミングを教えてください

みんなの回答

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

#2です。 #2の回答の一部に間違いがありました。 訂正させていただきます。 > そして「クラス」となっている欄に > 例えば「block1」というクラス名を付けます。 > (ActionScript 3.0 では識別子は付けません。)  ↓訂正↓ そして「クラス」となっている欄に 例えば「Block1」というクラス名を付けます。 (ActionScript 3.0 では識別子は付けません。) つまりクラス名として 「block1」ではなく「Block1」と命名した場合のスクリプトや添付図を付けています。 (クラス名の場合,頭の文字は大文字にするのが一般的なので,そうしています。)

karasu08250
質問者

補足

Adobe flashプロフェッショナル cs5でした!

すると、全ての回答が全文表示されます。
  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.2

ご使用の Flash 作成ソフトやそのバージョン そしてActionScript のバージョンがないと回答不可能(回答困難)なのですが。 その辺がわからないと回答できないので 【この回答】では勝手に Flash CS3 以降をお使いで ActionScript 3.0 を使用するものとした場合の説明を書きます。 (Flash CS3 以降… CS3,CS4,CS5,CS5.5,CS6,…) 新規ドキュメント作成より, まずシンボル「block1」は ムービークリップシンボルとして作成します。 ライブラリにあるその「block1」を右クリックするなどして 「プロパティ」より「シンボルプロパティ」パネルを出します。 その出したパネルの「リンケージ」の欄で  □ ActionScript に書き出し  □ 最初のフレームに書き出し にチェックを入れます。 そして「クラス」となっている欄に 例えば「block1」というクラス名を付けます。 (ActionScript 3.0 では識別子は付けません。) ※【添付図】↓ そして メインタイムライン の フレーム1 に 次のようなスクリプトを書きます。 //------------------------------ //「Block1」を配置する座標の設定 var b1_x:Number=50; var b1_y:Number=50; //「block1」用カウンタを用意 var cnt1:int=0; //「block1」を配置する関数 makeBlock1 の定義 function makeBlock1():void { //「Block1」を「b1_mc○」という参照変数名で呼び出す this["b1_mc"+cnt1] = new Block1(); this["b1_mc"+cnt1].x=b1_x; this["b1_mc"+cnt1].y=b1_y; this["b1_mc"+cnt1].buttonMode=true; addChild(this["b1_mc"+cnt1]); // //「b1_mc○」内にフラグ「flg」を用意 this["b1_mc"+cnt1].flg=false; // //「b1_mc○」押下時に関数 b1DownFunc を実行 this["b1_mc"+cnt1].addEventListener(MouseEvent.MOUSE_DOWN,b1DownFunc); } //「block1」を配置する関数 makeBlock1 を実行 makeBlock1(); //ドラッグ中のMCの参照を格納する変数 var drag_mc:MovieClip; //関数 b1DownFunc の定義 function b1DownFunc(e:MouseEvent):void { //マウス押下ターゲットMCの参照を変数に格納 drag_mc=MovieClip(e.currentTarget); //ターゲットMCをドラッグ開始 drag_mc.startDrag(); //マウスアップ時に mouseUpFunc を実行 stage.addEventListener(MouseEvent.MOUSE_UP,mouseUpFunc); //もしターゲットMC内のフラグ「flg」の値が false であれば if (! drag_mc.flg) { //「block1」用カウンタをカウントアップ cnt1++; //「block1」を配置する関数 makeBlock1 を実行 makeBlock1(); } //ターゲットMCを最高表示順に移動 this.addChild(drag_mc); } //関数 mouseUpFunc の定義 function mouseUpFunc(e:MouseEvent):void { //ドラッグを終了 drag_mc.stopDrag(); //マウスアップ時にこの関数を実行するのを解除 stage.removeEventListener(MouseEvent.MOUSE_UP,mouseUpFunc); } //------------------------------ なお Flash MX2004 以降をお使いで ActionScript 2.0 を使用する場合の説明は 下記ご質問ページを参考にしてください。 「質問:Adobe flashソフトを使ってゲームを作りたい」 OKWaveの場合→ http://okwave.jp/qa/q8171717.html 教えて!gooの場合→ http://okwave.jp/qa/q8171717.html なお今のところ(補足がなければ) Adobe または Macromedia Flash 以外の Flash 作成ソフトの場合や Macromedia Flash でも Flash MX 以下の場合などは知りません。 (Flex の場合や Flash Builder の場合や Suzuka の場合や ParaFla! の場合や… 場合が多すぎてそれぞれについて一々回答できません。)

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

関連するQ&A