• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Flashのサンプルにつきまして)

FlashサンプルのActionScript3.0での使用について困っています

このQ&Aのポイント
  • Flashサンプルサイトのカーソルの軌跡を追いかけて消える2をActionScript3.0で使用したいが、うまく動作しない
  • エラー1151が出ており、定義iにコンフリクトが存在する
  • サンプルサイトのActionScript3.0での使用方法に関しての質問

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

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

ターゲットパスなどが元から微妙に変というのはありますが, そういう細かいことは無視して(=なるべく元のままで) エラーを出さないという最低限の修正を加えた ActionScript 3.0 は次のようになります。 ---------------------------------------------- for (var i:int = 1; i<8; i++) { root["shadow"+i] = new shadow(); MovieClip(root).addChild(root["shadow"+i]); } var member:Array = new Array(); var position:Object = new Object(); for (i = 1; i<8; i++) { position={mX:mouseX,mY:mouseY}; member.push(position); } this.addEventListener(Event.ENTER_FRAME,myFunc); function myFunc(evt:Event):void { position={mX:mouseX,mY:mouseY}; member.push(position); if (member.length>8) { member.shift(); } for (var i = 1; i<member.length; i++) { this["shadow"+i].x = member[i].mX; this["shadow"+i].y=member[i].mY; this["shadow"+i].alpha = i/7; } } --------------------------------------------- ただ ActionScript 3.0 では, そもそもスクリプトのみの変更ではなくてそもそものオブジェクトの存在自体が変わっています。 ActionScript 3.0 にパブリッシュ設定した時点で, 自動的に「ライブラリ」にあるシンボル「shadow」の識別子「shadow」が削除されて, クラス名に「shadow」が付けなおされていた場合はそれで良いですが, 「ライブラリ」にあるシンボル「shadow」の識別子などが自動的に修正されていなければ, 手動で修正する必要があります。

nanachan08
質問者

お礼

ご丁寧にありがとうございました!!

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

関連するQ&A

  • processingのプログラムの書き方について。

    課題で、どこからマウスをプレスしても20個もの四角を(0,0)まで数珠つなぎみたいにするプログラムをかいているんですが全然わかりません。 そのため大きさなどは瞬時に計算をするからmouse x, mouse yをつかいます だからrect(mouseX,mouseY,mouseX,mouseY)になると思うんですが。。 とにかく全部わかりません。教えてください。 自分が書いたのはこんなのですが、全然違います。 forループ、mouseX, mouseYを使うのはわかります int s = 600; int n = 20; int i = mouseX; void setup() { size(s,s); background(255); noStroke(); rectMode(CENTER); } void draw() { if(mousePressed) { for(int i=0; i<s; i++); { fill(255,0,0); rect(mouseX,mouseY,mouseX,mouseY); } } }

  • removeMovieClip()で画面が固まる

    こんばんは。 透明ムービークリップ上でマウスをクリックすると、ライブラリに登録されたムービークリップシンボルをattachMovie()で生成するflashを作っています。生成するのはできるのですが、「Clear」ボタンをつくり、ボタンを押すと、生成したインスタンスをすべて一度に削除するスクリプトを仕込んでいます。しかし、Clearボタンを押すとFlashが固まります。たぶん、スクリプトの書き方に問題があると思うのですがわかりません。わかる方がいらっしゃったらお教え願います。 //インスタンスを生成するスクリプト onClipEvent(load) { count = 0; } onClipEvent(enterFrame) { this.onPress = function() { count++; mouseX = _root._xmouse; mouseY = _root._ymouse; charaName = "Chara" + count; obj_format = {_x:mouseX,_y:mouseY}; attachMovie("chara1",charaName,count,obj_format); } } //インスタンスを削除するスクリプト on(press) { for(i = 1;i <= count; i++) { tmp = "Chara" + i; _root[tmp].removeMovieClip(); } count = 0; }

    • ベストアンサー
    • Flash
  • 外部TXTデータでFlashを作りたいです。。

    Action Scriptでxmlデータを使用して画像を表示させ方と、その画像(クリック時別ページに飛ばす)にリンク張り方を教えてください。 ここに<http://movie.geocities.jp/hothotsteal/action.swf>に Action Scriptで作成した物があります。 ######################################## var star:Array = new Array(); var s_num:Number = 8; var length:Number = s_num * 100; for (i = 1; i <= s_num; i++) { _root.attachMovie("star","star" + i,i); star[i] = eval("star" + i); star[i]._x = 250 - 100 * (s_num - i); star[i]._y = 80; } _root.onEnterFrame = function() { for (i = 1; i <= s_num; i++) { if (_root.star[i]._x < -120) { _root.star[i]._x += length; } else if (_root.star[i]._x > 620) { _root.star[i]._x -= length; } _root.star[i]._x += (250 - _root._xmouse) / 10; star[i].onRollOver = rollov; star[i].onRollOut = rollou; } }; function rollov() { this._alpha = 50; } function rollou() { this._alpha = 100; } ################################## 「商品画像」というところを外部TXTで読み込んで、別画像表示、リンクの設定をしたいです。 画像は複数ありまして、画像1つ1つを個別のページに飛ばしたいのです。 どなたか救いの手を差し伸べていただけないでしょうか?

  • flashのscriptを特定のフレームに!

    flashのactionscript2.0で記述したスクリプト を特定のフレームにだけ適用したいのですが どのようにすればよいのでしょうか。 いま、シーン1のフレーム1に ライブラリからMC(ブロック)を呼び出して並べるスクリプト記述したのですが、シーン1で mcとmcが衝突したら、ほかのフレームに移動するようにしたのですが 移動先の画面にもライブラリから呼び出したMC(ブロック)が並んで表示されます。 ちなみに、シーン2をつくって移動させても同じことが起こります。 ネットのサンプルコードを利用していますが スクリプトは以下の通りです。 よろしくお願いいたします。 ofs_x = 100; ofs_y = 50; // 当たり用テーブル(1ならブロック,0なら何もなし) HitTable = [ [ 1,1,1,1,1,1,1,1,1,1 ], [ 1,0,0,0,0,0,0,0,0,1 ], [ 1,0,1,0,1,1,1,1,0,1 ], [ 1,0,1,0,0,1,0,0,0,1 ], [ 1,0,1,0,1,1,0,1,1,1 ], [ 1,0,1,0,1,0,0,0,0,1 ], [ 1,0,1,0,1,0,1,0,1,1 ], [ 1,0,1,0,1,0,1,1,1,1 ], [ 0,0,0,0,1,0,0,0,0,1 ], [ 1,1,1,1,1,1,1,1,0,1 ] ]; // ブロックを配置 var i = 0; var j = 0; var depth = 0; for(i=0;i<10;i++){ for(j=0;j<10;j++){ if(HitTable[j][i] == 1){ _root.attachMovie("block", "block" + depth,depth); _root["block" + depth]._x = i * 20 + ofs_x; _root["block" + depth]._y = j * 20 + ofs_y; depth ++; } } }

  • クリックされた地点が2点の線分上かの判定

    bool CheckOnline(int x1,int y1,int x2,int y2,int MouseX,int MouseY){ int range = 10; //許容範囲 double a; double b; if(x2 == x1){ if( abs( MouseX -x1)<range ){ if( abs(MouseY -abs(y2-y1)) <range) return true; } }else{ a=(y2-y1)/(x2-x1); b= y1 - a*x1; if( abs(MouseY - (a * MouseX +b)) <range ){ if( abs(MouseX - ((MouseY-b)/a)) <range ) return true; } } return false; } ぴったりでなく少し誤差があっても線上と判定したいです。 上記の方法ではうまく行きませんでした。 一応、y=ax+bのaとbを求めて、マウスのxとマウスのyを代入 その結果がrange以内かどうかでやってみようとした結果です。

  • attachMovieでのインスタンス名

    以下のようなスクリプトを書いているのですが、 traceの値がすべてmenu_mcとなってしまいます。 インスタンス名をmenu1_mc,menu2_mc,menu3_mc,・・・としたいのですが、どうすればいいのでしょうか? i = 10; for(y = 0; y < i; y++) { trace(y); m = y+1; obj = _root.attachMovie("menu", "menu"+m, y); obj._x = 30; obj._y = 70*y; trace(this._name); } 環境はFlashCS3、ActionScript2.0です。 よろしくお願いします。

    • ベストアンサー
    • Flash
  • AS3.0 ループを利用したムービークリップ生成

    お世話になります。 ソフトはFlashCS3を使用しています。Actionscript3.0で書き出そうと思っています。Actionscript3.0初心者ですがよろしくお願いします。 ライブラリーに Mc01,Mc02,Mc03,Mc04とクラスを指定したムービークリップを準備した状態でステージにムービークリップを生成しようと考えています。その際、for文を使って短く書きたいと思っています。 for (var i=0; i>4; i++){ var "Mc0"+i:"Mc0"+i = new "Mc0"+i(); "Mc0"+i.x = 10*i; "Mc0"+i.y = 10*i; this.addChild("Mc0"+1); } 上記のように書くと「1086:シンタックスエラー:identifierがMcの前に必要です。」とエラーが出てうまく作動しません。 参考までに現在は以下のようにすべて書き出しています。 //ムービクリップ01 var Mc01:Mc01 = new Mc01(); Mc01.x = 0; Mc01.y = 0; this.addChild(Mc01); //ムービクリップ02 var Mc02:Mc02 = new Mc02(); Mc02.x = 10; Mc02.y = 10; this.addChild(Mc02); …… 以下省略 特にfor文にこだわっててはいません。ループで生成できればOKです。 どなたかわかる方よろしくお願いします。

    • ベストアンサー
    • Flash
  • removeChildで描画した絵(シンボル:ムービークリップ)を消し

    removeChildで描画した絵(シンボル:ムービークリップ)を消したい。 お世話になります。 adobe Flash pro ActionScript 3.0 で作成しております。 左クリックを押したら、 var mc:pen=new pen; addChild(mc); mc.x=mouseX; mc.y=mouseY; でpenというムービークリップを表示させるようにしております。 removechildで消せるということはわかっているのですが、 具体的にどのようにしたら消せるのでしょうか? (1)直前に書いたmcを削除する方法 (2)今までに書いた全てのmcを削除する で教えて頂ければと思いますのでよろしくお願いします。

    • ベストアンサー
    • Flash
  • addChildで描画した絵(シンボル:ムービークリップ)を消したい。

    addChildで描画した絵(シンボル:ムービークリップ)を消したい。 お世話になります。 adobe Flash pro ActionScript 3.0 で作成しております。 左クリックを押したら、 var mc:pen=new pen; addChild(mc); mc.x=mouseX; mc.y=mouseY; でpenというムービークリップを表示させるようにしております。 そこで、作成したmcを消す方法はどのようにしたらよいでしょうか? (1)直前に書いたmcを削除する方法 (2)今までに書いた全てのmcを削除する で教えて頂ければと思いますのでよろしくお願いします。

    • ベストアンサー
    • Flash
  • もっとなめらかな線を描く方法

    マウスダウンしたままマウスを動かすと軌跡が残るようにしてマウスアップでそれが終わるという、一般的な「線を描く」というプログラムを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