• 締切済み

actionscript3.0でロールアウトすると逆再生するアニメーション

actionscript初心者です。 actionscript3.0でロールアウトするとアニメーションが逆再生するボタンを作成したいのですが、 http://livedocs.adobe.com/flash/9.0_jp/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00000212.html 参考にしながら作っているのですがうまくいきません。 誰がわかる方いらっしゃいますでしょうか。 よろしくお願いします。

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

みんなの回答

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

> 参考にしながら作っているのですがうまくいきません。 何がどううまく行かないのか具体的にわかりませんが。。。 わからないので,通しで 『マウスオーバーすると自転車内タイムラインの再生が開始され マウスアウトすると自転車内タイムラインが逆再生されるボタン』 の作成手順例を書いてみます。 ステージ上に自転車の絵を描いてムービークリップに変換し, そのムービークリップの中で「車輪が回る」だけのアニメーションを作成します。 (ムービークリップ内で車輪をグラフィックシンボルに変換してそれをモーショントゥイーンで回転させる) その自転車の車輪が内部で回転するだけのムービークリップに 「bicycle」 というインスタンス名を付けます。 その「bicycle」とは別に, メインのタイムラインにボタンを1つ作成してそのボタンに 「startButton」 というインスタンス名を付けます。  ・階層構造  シーン1などメインのタイムライン     ├bicycle(ムービークリップ)     │  ├自転車本体     │  ├前車輪(モーショントゥイーンで回転)     │  └後車輪(モーショントゥイーンで回転)     └startButton(ボタン) そしてメインのタイムラインのフレームに次のようなスクリプトを書きます。 -------------------------------- //ムービークリップbicycle内タイムラインの再生を停止 bicycle.stop(); //bicycle内タイムラインを逆再生させる関数を定義 function everyFrame(event:Event):void { if (bicycle.currentFrame == 1) { bicycle.gotoAndStop(bicycle.totalFrames); } else { bicycle.prevFrame(); } } //関数everyFrameを毎フレーム実行させるようにする関数を定義 function backAnimation(event:MouseEvent):void { bicycle.addEventListener(Event.ENTER_FRAME, everyFrame); } //bicycle内タイムラインの再生を開始する関数を定義 function playAnimation(event:MouseEvent):void { //bicycleに登録した毎フレーム時間実行させるリスナーを削除 bicycle.removeEventListener(Event.ENTER_FRAME, everyFrame); bicycle.play(); } //ボタンマウスオーバー時のリスナーとしてplayAnimationを登録 startButton.addEventListener(MouseEvent.MOUSE_OVER, playAnimation); //ボタンマウスアウト時のリスナーとしてbackAnimationを登録 startButton.addEventListener(MouseEvent.MOUSE_OUT, backAnimation); -------------------------------- 以上のような感じで作成できます。  

unbornbaby
質問者

お礼

画像付きで丁寧にお答えしていただき、 ありがとうございました。 解決いたしました。

関連するQ&A

  • 【緊急】スクロールバーの色の変更

    いつも緊急ですみません。 Flash8でコンポーネントのスクロールバーの色を変更したいのです。白だと色々と見栄えが…(汗 QNo.2770806さんの質問や、こちらのサイトを見たりしたのですが、よく分かりません。 http://livedocs.adobe.com/flash/8_jp/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00003003.html コンポーネントのサンプルを立ち上げると色々出てきますよね? どれの色を変えたらよいのかがさっぱりです。 どうしたらよろしいのでしょうか?

    • ベストアンサー
    • Flash
  • FLASH5で、ボタンにロールアウト時にもアニメーションさせたい

    FLASH5を使用しているのですが、ボタンにマウスのロールオーバーで アニメーションを設定することはできますが、ロールアウトしたときにも アニメーションを設定したい場合、どのような方法があるか教えていただきたいです。 今私が作りたいのは「何もないところにロールオーバーするとボタンがゆっくり表示され、 ロールアウトするとゆっくり消える」というものです。 現時点では、私はムービークリップの中にボタンを入れ、最初のフレームで フレームアクションに stop (); を設定し、そこに配置してあるボタン(ここでは、透明なボタン)に on (rollOver) { play (); } で次のフレームに行くようにし、そこでロールオーバー時のアニメーション(ゆっくりボタンが現れる) を作成して、止めたいところでフレームアクションに stop (); を設定し、その停止時に配置してあるボタン(表示されている可視状態)に on (rollOut) { play (); } を設定し、その次のフレームからはロールアウト時のアニメーション(ゆっくりボタンが消える) を作成しています。 これだと、動作はするのですが メニュー等のようにボタン(この場合はボタンを含んだ ムービーですね)を隣接させて複数置いた場合などに on (rollOut) { play (); } のスクリプトがうまく効かず、他のボタンにロールオーバーしているにも関わらず前にロールオーバーした ボタンがそのままの状態(ボタンが消えず表示されたままの状態)で残ってしまいます。 tellTargetとifを使用するのかな?とも考えたのですがよくわからず困っています、、、、 長文で申し訳ないのですが、よろしくお願いします。

  • actionscript2.0について

    先日より、Flashを始めたばかりのド素人です。 現在、Flash8 actionscript2.0 WINXPにて、ホームページ用のボタンを制作しているのですが、 ボタンシンボルからオーバーを選択して、MCをダブルクリックし、ロールオーバー時にラインが出てきて止まるまでは、出来ました。 その止まった状態から、ロールアウト時に逆戻りさせて、また元の位置に戻して停止させたいのですが、どのような 指示を出せば良いか、いろいろと調べてみましたが、全くわかりません。 フレーム数は5で12.0fpsです。 状況説明すらわかりにくく申し訳ありませんが、教えていただきたいと思います。 宜しくお願い致します。

  • ActionScriptで「ボタンを押すとアニメーションされる」のプログラミングの仕方がわからない

    私はFLASHを使ってゲームを作ろうとしているんですが、あらかじめ、ボタンを作成して、キーフレーム(タイムライン)でアニメーションを作り、ActionScriptを使って「ボタンを押すと最初のキーフレームから最後のキーフレームまで再生されて、最初のキーフレームに戻ってくる」ていうのをプログラミングしようと思うんですが、どのようにプログラミングしたらいいのかわかりません。ネットで調べてみてもわかりませんでした。 どうプログラミングすればいいのですか? ご教授願います。

  • ロールオーバーするとラベルにジャンプし、ロールアウトするまでストップ

    ボタンAとボタンBの2つがありまして、 ボタンAにロールオーバーすると、指定したラベルにジャンプし、ボタンAの位置にボタンBがきます。 オーバー後少し進み、ロールアウトするまでストップしたいのですが、どうすれば良いのでしょうか? ボタンAには ──────────────────── on (rollOver) { gotoAndPlay("ボタンBの所のラベル"); } ──────────────────── と書いてあり、ロールオーバー時にきちんとラベルにジャンプしてくれます。 ボタンBには、 『 buttonB 』と名前を付け ──────────────────── on (release) { getURL("http://www.URL"); } ──────────────────── と記載してあり、別ページに飛ばしております。 該当のラベルまでジャンプした後、10フレームくらい進んだフレームにActionScriptをかけておりまして、 ──────────────────── stop(); clearInterval(stopID); var mov_stop = 4000; stopID = setInterval(function () { play(); clearInterval(stopID); }, mov_stop); } ──────────────────── となっており、ここのフレームでロールアウトするまでストップさせたいのですが、どうすればいいのか分からず困っております。 分かり難い文章で申し訳ないのですが、どなたか詳しい方ご掲示お願い致します。

    • ベストアンサー
    • Flash
  • createTextFieldで作ったテキストフィールドにスクロールバーをとりつける。

    テキストツールでダイナミックテキストのフィールドをつくり、そこにコーンポーネントを適用させたら、スクロールバーがつく、とわかったのですが、スクリプトでテキストのフィールドをつくり、そのテキストフィールドにコンポーネントを適用させて、スクロールバーを取り付ける事はできないのでしょうか? this.createTextField("my_txt", 10, 5, 60, 205, 240); my_txt.htmltext = _level0.entry; このようにして、テキストフィールドに外部テキストをよみこんでいます。 アドバイスをいただきたいです。 http://livedocs.macromedia.com/flash/8_jp/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00004232.html このページを見てもよく分からなく、スクロールバーの取り付けができません。 私が使っているのは、Windows XP Flash MX Professional 2004です。 よろしくお願いします。

    • ベストアンサー
    • Flash
  • アニメーションするロールオーバーにリンクを張りたい

    http://www.geocities.jp/peperon44/peach.html←の様にアニメーションしてリンク先が出てくるロールオーバーを作っています。 http://www.geocities.jp/peperon44/peach.fla←に作っているファイルを置きましたが 一番上の階層にシンボル化したボタンを置き、その下の階層ですべてのフレームアニメーションをさせていますが、1フレーム目に this.stop(); //マウスカーソルがロールインした this.onRollOver = function() { //ロールオーバー開始 rollover = true; }; //マウスカーソルがロールアウトした this.onRollOut = function() { //ロールオーバー終了 rollover = false; }; //フレームが進む度に実行 this.onEnterFrame = function() { if (rollover) { //次のフレームへ進む(最終フレームでは無視される) this.nextFrame(); } else { //手前のフレームに戻る(先頭フレームでは無視される) this.prevFrame(); } }; を入れ大ボタンから出てくる紹介、名前、名簿をそれぞれフレームアニメーションにさせ、シンボル化させて各オブジェクトに on (release) { getURL("name.html", "_foot"); } を入れていますが、指定のURLにリンクがかかりませんのでボタンに反応してくれません。記述が間違っているのか、スクリプトを書く場所を間違えているのだと思います。 このつくりだと一番上の階層に on (release) { getURL("name.html", "_foot"); } と入れると指定のURLにリンクされますが、それでは3つリンク先を分けられないので大ボタンから3つの文字がアニメーションして出てくる意味がありません。大ボタンから出てくる小ボタンにリンクを張るようにしたいです。 FLASHに関してはまだまだの未熟者ゆえ解らないです。何方かお助け下さい。 環境はWindowsXP ソフトはFLASH8です。

    • ベストアンサー
    • Flash
  • C++とJavaScriptもしくはFlashとの連携

    パソコンとRS232を用いて通信する外部デバイスと、Flashの連携を行いたいと考えています。 環境は、 OS: WindowsXP Flash: Adobe Flash8 JavaScript: Flashよりパブリッシュされるhtmlに記述 C++: Microsoft Visual C++ 2005 Express Edition です。 Flash自身には外部デバイスと通信する術は、セキュリティ上備えていないと思うので、RS232通信を行う部分はCのプログラムを走らせておく必要があると思います。 Flash側のヘルプを見ていると、fscommand関数を用いると "ActiveXコントロールに対応しているVisual Basic (VB) や Visual C++ などのプログラムにメッセージを渡すこともできます。" Adobeオンラインヘルプ: http://livedocs.adobe.com/flash/9.0_jp/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00001177.htm とあったのですが、これについてAdobe側に詳しい説明を求めたところ、 External API (ExternalInterface クラス)は、JavaScript によりActionScript やFlash Player コンテナと HTML ページ間の通信を可能にするサブシステムであるため、Flash と C++ 等とのやり取りを コンテナ内の JavaScript などで仲介するような構成内容が想定されるかと存じます。 と言う回答が返ってきました。 さらに、 誠に恐れ入りますが上記のような C++、およびJavaScript記述については、て有の償サポートをご利用の場合も含めて、弊社よりケーススタディとし情報提供は行っておりません。 と言う返答も付け加えられており、正直お手上げな状態であります。 そもそもFlashがそう言った利用方法を想定していない、むしろ封じていることは他の方の書き込みを見ていて理解できました。 そこで本題となるのですが、C++とhtml内のJavaScriptに書かれた関数とやりとりができるようであれば、これは実現できるのではないかと考え質問させて頂いております。

  • adobe Flash CS5 ActionScript3 ボタンを押

    adobe Flash CS5 ActionScript3 ボタンを押す度に、音の頭出し再生 AC3始めたばかりの初心者です。 「ボタンを押したらSE(音)がなる」FLASHをつくっているのですが、ボタンを連続で押すとSEが重なってしまいます。ボタンを押すごとに、SEの頭出しで再生させたいのですが、 どのようにすればよいのでしょうか? どなたかご教授頂けると助かります。

    • ベストアンサー
    • Flash
  • flashにてフェードアウトアニメーションのあるページ移行についての質

    flashにてフェードアウトアニメーションのあるページ移行についての質問です。 フルフラッシュサイトを勉強のしたいと思い挑戦しています。 page1からpage2への移動する際にメニューボタンを押すとpage1のフェードアウトのアニメーションが再生されて、 さらに、page2のフェードインアニメーションがされてpage2のコンテンツを表示する為にはどうすればよいかわかりません。 ・pageは複数 ・どのpageから移動するさいにもそのpage特有のフェードアウトアニメーション 上記の条件を満たす方法を模索しております。 http://www.square-enix.co.jp/hikarino4sensi/ のサイトのようなページ移行の実現が目標です。 よろしくお願いします。

専門家に質問してみよう