Flash AS2.0からAS3.0へのコード変換方法と注意点

このQ&Aのポイント
  • Flashで使用されているActionScriptのバージョンを2.0から3.0に変更する方法について解説します。
  • AS2.0から3.0への変換には注意が必要であり、一部の構文やメソッドが変更されているため、コードの修正が必要です。
  • この質問では、AS2.0で作られたフラッシュアニメーションをAS3.0に変換する方法についての助けを求めています。
回答を見る
  • ベストアンサー

actionscript2.0から3.0へ、

actionscript2.0から3.0へ、 actionscript2.0から3.0へ、 大変申し訳ございませんが、 どなたか書き換えていただけないでしょうか? 情報が足りない場合ご指摘くださいましたら 追記いたします。 flash8にて制作されたFlaをCS4にて修正しています。 3.0がわかるものが出来なくなってしまったので、 こちらに書かせていただきました。 400フレームのものなのですが、1フレームに下記のスクリプトがあります。 btnSkip.onRelease = function() { this._visible = false; gotoAndStop("end"); btnRepeat._visible = true; } 400フレーム目には下記のスクリプトがあります。 stop(); btnRepeat._visible = true; btnSkip._visible = false; btnRepeat.onRelease = function() { gotoAndPlay("start"); this._visible = false; btnSkip._visible = true; } みたところステージには、スキップとリピートのムービークリップがあります。 スキップをクリックすると、400フレーム目に飛んでストップ、リピートを押すと1フレーム目に戻って再生、という動作です。 修正前(2.0)は正常に動作していました。 これを3.0に書き換えていただきたいのです。 大変恐縮なのですが、大至急直さないといけないのです。。 よろしくお願いいたします。

  • Flash
  • 回答数1
  • ありがとう数2

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

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

その他が全くないのでしたら 次のようにすればできるかもしれません。 ---フレーム1----------------------- btnSkip.addEventListener(MouseEvent.CLICK,skipOnRelease); function skipOnRelease(evt:MouseEvent) :void{ evt.currentTarget.visible = false; gotoAndStop("end"); btnRepeat.visible = true; } --------------------------------- ---フレーム400--------------------- stop(); btnRepeat.visible = true; btnSkip.visible = false; btnRepeat.addEventListener(MouseEvent.CLICK,repeatOnRelease); function repeatOnRelease(evt:MouseEvent):void { gotoAndPlay("start"); evt.currentTarget.visible = false; btnSkip.visible = true; } --------------------------------- これくらいのことは当然わかりきってから ActionScript 3.0 に変更した方が良いですよ。

yujiyamasa
質問者

お礼

ありがとうございます! おかげさまで、無事できました。 これからいろいろ学んでいきたいと思います。

関連するQ&A

  • ActionScriptでの繰り返し記述をすっきりまとめたい

    FLASHのActionScriptを勉強中です。 繰り返し同じ様なものを記述する場合、for文か何かを使うと思うのですが、以下の場合はどうすればいいのでしょうか? *プログラムの内容は複数のインスタンスを表示してクリックで順次消えるというものです。インスタンスに記述ではなく、フレームに記述しています。(イベントハンドラメソッド) this.b1.onRelease = function(){ _root.b1._visible = false; }; this.b2.onRelease = function(){ _root.b2._visible = false; }; this.b3.onRelease = function(){ _root.b3._visible = false; };      以下繰り返し… お詳しい方、よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • actionscript3.0について教えてください。

    actionscript3.0について教えてください。 Flash CS4で、マウスオーバーすると画像が表示するものを制作しました。 (全レイヤー、1フレーム目のみで制作していました) そして最近その以前制作したものの直前に別のムービーを入れることになり、 画像のように1フレーム目から4フレーム目まであけました。 そしてもともとあったフレームをすべて5フレーム目に移動しました。 すると、エラーが出るようになりました。 5フレーム目に移動するとエラーが出るようになってしまったので、 試しに2フレーム目、3フレーム目など試しましたが同じくエラーが出ました。 エラーの内容は TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。 at test_fla::MainTimeline/frame5() です。 下記のスクリプトを上から二つ目のレイヤーに記述しています。 一番上のレイヤーには、stop();と記述しています。 超初心者のため説明不十分かもしれませんが、宜しくお願いいたします。 /*ボタン1 */ nav1txt_mc.visible = false; nav1_btn.addEventListener(MouseEvent.MOUSE_OVER,onMouseover); function onMouseover(e:MouseEvent):void{ nav1txt_mc.visible = true; nav1txt_mc.gotoAndPlay("nav1txt_mc"); } nav1_btn.addEventListener(MouseEvent.MOUSE_OUT,nondisplay); function nondisplay(e:MouseEvent):void{ nav1txt_mc.visible = false; } /*ボタン2*/ nav2txt_mc.visible = false; nav2_btn.addEventListener(MouseEvent.MOUSE_OVER,onMouseover2); function onMouseover2(e:MouseEvent):void{ nav2txt_mc.visible = true; nav2txt_mc.gotoAndPlay("nav2txt_mc"); } nav2_btn.addEventListener(MouseEvent.MOUSE_OUT,nondisplay2); function nondisplay2(e:MouseEvent):void{ nav2txt_mc.visible = false; } /*ボタン3*/ nav3txt_mc.visible = false; nav3_btn.addEventListener(MouseEvent.MOUSE_OVER,onMouseover3); function onMouseover3(e:MouseEvent):void{ nav3txt_mc.visible = true; nav3txt_mc.gotoAndPlay("nav3txt_mc"); } nav3_btn.addEventListener(MouseEvent.MOUSE_OUT,nondisplay3); function nondisplay3(e:MouseEvent):void{ nav3txt_mc.visible = false; } /*ボタン4*/ nav4txt_mc.visible = false; nav4_btn.addEventListener(MouseEvent.MOUSE_OVER,onMouseover4); function onMouseover4(e:MouseEvent):void{ nav4txt_mc.visible = true; nav4txt_mc.gotoAndPlay("nav4txt_mc"); } nav4_btn.addEventListener(MouseEvent.MOUSE_OUT,nondisplay4); function nondisplay4(e:MouseEvent):void{ nav4txt_mc.visible = false; } 宜しくお願いいたします。

    • ベストアンサー
    • Flash
  • ActionScriptで対象外の音まで止まる・・・。

    フレームに以下のような記述をしたのですが動作が変です。初期段階で「oto1」が鳴っており、インスタンス「b1」をクリックで止まります。これは想定どおりの動作なのですが、「b2」をクリックしても止まるのです。これは理解できません。 何が誤りなのか教えていただけませんでしょうか? よろしくお願いいたします。 (インスタンス名は正しくつけています) oto1 = new Sound(); oto2 = new Sound(); _root.oto1.attachSound("s1"); _root.oto2.attachSound("s2"); _root.oto1.start(0, 99); this.b1.onRelease = function(){ _root.oto1.stop(); }; this.b2.onRelease = function(){ _root.oto2.stop(); };

    • ベストアンサー
    • Flash
  • 複数のクリックボタンにより再生と停止場所を指定する方法

    複数のボタンを用意し、クリックするボタンにより異なるフレーム数で停止たいと思っております。 停止したいフレームごとにstop();を入れると、そこで毎回止まってしまうのでボタン毎に停止場所を指定しようと、以下のように試してみましたが、出来ませんでした。 停止場所をラベルでも指定してみましたが、出来ませんでした。 stop(); _root.next1.onRelease = function() { gotoAndPlay(5); this.stop(10); } _root.next2.onRelease = function() { gotoAndPlay(5); this.stop(20); } どなたかお考えのあるかたご教授いただけますと幸いです。 当方 Flash8 ActionScript2.0 を使用しています。

  • Flash ActionScript3.0ボタン.

    このまえはじめたばかりの初心者です。FlashCS4です。 Flash ActionScript3.0ボタンでフレームに飛ぶ方法がわかりません・・ AS3.0ではボタンにスクリプトが書けないので メインタイムラインの最初のフレームにスクリプトを書くのですよね? アドレスに飛ぶ方法は this.stop(); // イベントを設定 stage.addEventListener( MouseEvent.CLICK , onClick ); // 画面クリックをするとonClickが動作するイベント function onClick ( event:MouseEvent ) { // URLRequestを設定 var url:URLRequest = new URLRequest( "http://www.google.co.jp" ); // 実際にページに飛ぶ navigateToURL( url ); } こちらであっていますでしょうか・・? これをいじってフレームに飛ぼうとおもうのですが、うまくいきません・・ どなたか、flashサイトでもわかりやすいところがあれば ご伝授おねがいいたします。

    • 締切済み
    • Mac
  • Flash ActionScript3.0ボタン.

    このまえはじめたばかりの初心者です。FlashCS4です。 Flash ActionScript3.0ボタンでフレームに飛ぶ方法がわかりません・・ AS3.0ではボタンにスクリプトが書けないので メインタイムラインの最初のフレームにスクリプトを書くのですよね? アドレスに飛ぶ方法は this.stop(); // イベントを設定 stage.addEventListener( MouseEvent.CLICK , onClick ); // 画面クリックをするとonClickが動作するイベント function onClick ( event:MouseEvent ) { // URLRequestを設定 var url:URLRequest = new URLRequest( "http://www.google.co.jp" ); // 実際にページに飛ぶ navigateToURL( url ); } こちらであっていますでしょうか・・? これを多少いじって次のフレームに飛ばそうとおもうのですが、うまくいきません・・ どなたか、flashサイトでも、わかりやすいところがあれば ご伝授お願いします。

  • ActionScript 2.0 再生・停止

    クリックで特定のムービークリップが再生・停止するスクリプトをAS2.0(ActionScript 2.0)で記述したいです。 現在はAS1.0で下記のようにムービークリップに記述しています。 これをAS2.0に直すとどのような記述になるでしょうか。宜しくお願いいたします。 onClipEvent (load) { mode = true; } on (release) { mode = !(mode); if (mode) { this.play(); } else { this.stop(); } }

    • ベストアンサー
    • Flash
  • ActionScript2.0

    actionscript2.0で作成をしている初心者です 今、ドラッグが可能なムービークリップを作成し、 その下の階層にボタンを作成しています。 onClipEvent (enterFrame){ this.onPress = function(){ドラッグ開始} this.onRelease = function(){ドラッグ終了} this.button1.onPress = function(){ボタン押した処理} [現状] ムービークリップをドラッグ不可能にすれば、ボタンを押すことは可能なのですが、ドラッグ可能にするとボタンが押せなくなります。 ムービークリップのドラッグが可能で、かつムービークリップ階層下のボタンを有効にするためにはどうしたらよいでしょうか。 宜しくお願いします

  • ActionScriptで思うような動きを出せず、困っています

    *質問* 現在、ActionScriptを基本的な勉強から初めているのですが、 どうしても分からないところがあり戸惑っております。 皆さんお助言をどうぞお願い致します。 x座標:0.0、y座標:536.5から減速をしながら平行に移動し、 x座標が650以上になったら、x座標:35、y座標:25に向かい、 後方斜め上に移動するという動きを、作っていたのですが、 なかなかうまくいきません。 Scriptは下記の通りに記載致しました。 ============================ onLoad = function(){ maru1.Gox = 700; maru1.Goy = 25; flg = false; } maru1.onEnterFrame = function(){ this._x += (maru1.Gox - this._x)/10; if(this._x >= 650){ maru1.Gox = 35; flg = true; } if(flg = ture){ this._y += (maru1.Goy - this._y)/10; } } ============================ 初歩的な質問で大変申し訳ございませんが、 助言をどうぞよろしくお願い致します。 “環境”Mac OS 10.4、Flash8

  • ActionScriptで release と releaseOutside の合体記述

    FLASHのActionScriptにおいて、 on(release){… と on(releaseOutside){… を合体させると、 on(release, releaseOutside){… ですが、 this.hoge.onRelease = function(){… と this.hoge.onReleaseOutside = function(){… を合体させるとどうなるんでしょうか? かなり初歩的かもしれませんがお詳しい方、よろしくお願いいたします。

    • ベストアンサー
    • Flash

専門家に質問してみよう