• 締切済み

AS3.0で1秒に1回転するプログラムを作りたい

今1秒に1回転するプログラムを作っています ムービークリップは使っていません 画像の回転はできているのですがタイマー関数を使って画像を回転させるのが出来ないです・・・ 使っているツールはflash developだけです 今のプログラムは インスタンス名.rotation += 1; で画像の左上を基準にして右回転する感じです 誰か教えてください お願いします

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

みんなの回答

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

#1です。 ご質問で書かれているインスタンスとは結局何なのかがわかりませんが, そのインスタンスがスプライトであるものとして, 実際に FlashDevelop を使って そのスプライトインスタンスを作成する部分も含めたコードに#1のコードを書き替えてみました。 ASファイルのファイル名は「Main.as」であるものとした場合です。 --------------------------------- package { //各クラスのインポート import flash.display.Sprite; import flash.events.Event; import flash.utils.getTimer; // public class Main extends Sprite { //変数の宣言 private var sp:Sprite; private var tm:Number; // //コンストラクタ public function Main():void { //スプライトインスタンス「sp」の作成&配置 sp = new Sprite(); sp.x = stage.stageWidth / 2; sp.y = stage.stageHeight / 2; addChild(sp); // //「sp」内に青い長方形を描画 sp.graphics.beginFill(0x0000FF); // 座標(0px,0px)を起点(左上)に10×100pxの矩形を描く sp.graphics.drawRect(0,0,10,100); // //「sp」に毎フレーム実行するリスナーを登録 sp.addEventListener(Event.ENTER_FRAME, rotateInstance); } // //インスタンスを回転させる関数rotateInstanceを定義 private function rotateInstance(e:Event):void { //ミリ秒数を取得 tm = getTimer(); //ミリ秒数を秒数にした小数部分を取得 tm = tm / 1000 - Math.floor(tm / 1000); //ターゲットインスタンスをその小数の角度回転させる e.target.rotation = tm * 360; } } } --------------------------------- ※ 作成&動作検証 FlashDevelop 3.3.4   ActionScript 3.0   Flash Player 10 設定 #1から特に大きな変更点はありません。 インスタンスの作成部分を含めたので スクリプトコードをコピペするだけで即動作検証できるようになったというだけです。

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

Flash(Flash Player に表示されている SWF)は 1フレーム進む時間毎に表示更新されます。 ですから何か見えているインスタンスを随時動かす場合は Timerクラス ではなく Event の ENTER_FRAME を使うのが一般的です。 私は FlashDevelop を使ったことがないので その仕様(スクリプトを書く場所や独特の書き方)などは知りませんが だいたい次のような感じでできると思います。 Adobe Flash CS○ の ドキュメントクラス の場合のスクリプト例です。 //-------------------------------- package { import flash.utils.getTimer; import flash.display.MovieClip; import flash.events.*; public class RotateClass extends MovieClip { var tm:Number; public function RotateClass() { //インスタンスに毎フレーム時間で実行するリスナーを登録 //(実行関数 rotateInstance) インスタンス名.addEventListener(Event.ENTER_FRAME,rotateInstance); } //関数 rotateInstance の定義 public function rotateInstance(e:Event):void { //ミリ秒数を取得 tm = getTimer(); //ミリ秒数を秒数にした小数部分を取得 tm = tm / 1000 - Math.floor(tm / 1000); //ターゲットインスタンスをその小数の角度回転させる e.target.rotation = tm * 360; } } } //--------------------------------

関連するQ&A

  • シンボルを回転させたいのですが、うまくいきません。

    はじめまして。Flash初心者です。 Flashを使ったものをWEBサイトに取り入れたいと思いまして、 ネットでモデルとなるものを探してました。 その結果、 http://flashrave.org/as/rotation/index.html のサイトのものを作ってみたいのですが、エラーがでてしまします。 私の最終的にした事。 1,回転させたい画像を、イラストレーターに読み込み、swfで保存する。 2,Flashを開きライブラリから新規シンボルを作成。ムービークリップを選択し、ソースから1で使用したhtmlファイルを読み込んでみる。(読み込まないも試してみる) シンボルの画面から、ファイル→読み込みでswfファイルを読み込む。 画像がでる。 3,シーン1にシンボルが表示される。それを選択して サイトにあった onClipEvent (enterFrame) {  this._rotation += 1; } このソースをアクションに貼付ける。 4,保存して、動かしてみる。 5,すると以下のようなエラーが出力される **エラー** シーン = シーン 1, レイヤー = レイヤー 2, フレーム = 1 :行 2:シンタックスエラー  this._rotation += 1; **エラー** シーン = シーン 1, レイヤー = レイヤー 2, フレーム = 1 :行 3:予期しない '}' があります。 } ActionScript エラー数 :2 報告済みエラー :2 以上です。初心者なので単純なミスかもしれません。Flash8を使っています。 どなたかご教授宜しくお願い致します。

    • ベストアンサー
    • Flash
  • 7秒後にフレーム5へ移動してムービークリップを再生

    はじめまして。 FLASH初心者です。 レイヤー1~5の5フレームごとにムービークリップを配置しています。 レイヤー1の1フレーム目に配置してあるムービークリップが再生されて、7秒後にレイヤー2の5フレーム目に配置してあるムービークリップを再生し、(レイヤー3~5も同様に…)レイヤー5に配置してあるムービークリップの再生が終わったら、また7秒後にレイヤー1のムービークリップが再生される…といったように繰り返すにはどのようなActionScriptにすればよいのでしょう? 色々、試行錯誤したのですがうまくいきません。 どなたか教えて頂けませんか? よろしくお願いします。

    • ベストアンサー
    • Flash
  • マウスホイールでムービークリップを再生(as3.0)

    先ほどカテゴリを間違えて別のところに投稿してしまった者です マウスホイールを使ったFLASHをつくっているのですが、ホイールの回転に合わせて時計の針を回し、さらにそれと連動してムービークリップを動かそうとしています。 (MouseEvent.MOUSE_WHEEL,wheelHandler)を使って時計の針を動かすことはできたのですが、ムービークリップの制御の仕方がさっぱりわかりません・・・ そもそもホイールでムービークリップのフレームを制御できるのかすらわからづにいます。 作っているものを簡単に整理すると 1、マウスホイールで時計の針が回転して時間が進む これはwheelhandlerとrotationでなんとか動きました。 2、それと連動させて(実際に連動せずともそう見えればいい)ムービークリップ(以下mc)を再生させたい。 このmcは進むのと戻るのを両方できるようにしたいです ある土地の歴史を1日にたとえて、時計を用意し、その変化をmcで説明するという物です。mcはアニメではなく地図で、建築物やちょっとしたアイコンが増えていくものです。 こういう説明が苦手なので伝えられているか不安ですが、ご回答お願いいたします。

  • FLASHのアクションスクリプトで回転の際の中心点

    FLASHでムービーをつくり、アクションスクリプトを使って回転させました。 onClipEvent(enterFrame){ _rotation += 10; } ちゃんと回転してますが、意図する中心点と違うところを中心点として回転しています。 自分で「ここだ!」と指定することはできますか?

  • アクションスクリプトで、ムービークリップを5回だけ回転させたい。

    アクションスクリプトのど素人です。 ムービークリップを何回転かさせてストップさせたいのですが、うまくいかず永久に回転し続けます。 どこに問題があるのでしょうか・・・。使用バージョンは8です。 onClipEvent (enterFrame) { for(i=0; i<5; i++) this._rotation += 40; } 初歩的な質問ですいません(> <)

    • ベストアンサー
    • Flash
  • 日付と時刻の取得、ムービークリップの読み込みについて

    あるFLASHファイル(例えば、hizuketozikoku.swf)を用意します。(?)の部分にどのような記述をすれば、(?)のフレームアクションによってローカルマシンの常に新しい日付と時刻(*月*日*曜日*時*分*秒)を取得し、また取得した日付と時刻に対応するライブラリのムービークリップを指定する場所に読み込ませる(例えば、1月1日日曜日1時1分1秒の場合は、gatuに1gatu、nitiに1niti、youbiにnitiyoubi、ziに1zi、hunに1hun、byouに1byouを読み込ませる)ことができますか。 使用ソフトは、FLASHMXです。よろしくお願いします。 ※ hizuketozikoku.swf  シーン1   レイヤー7 フレーム1 インスタンス名:byou   レイヤー6 フレーム1 インスタンス名:hun   レイヤー5 フレーム1 インスタンス名:zi   レイヤー4 フレーム1 インスタンス名:youbi   レイヤー3 フレーム1 インスタンス名:niti   レイヤー2 フレーム1 インスタンス名:gatu   レイヤー1 フレーム1 フレームアクション(?)  ライブラリ   レイヤー1からレイヤー7のムービークリップ(例えば、シンボル1からシンボル7)   1月から12月のムービークリップ(例えば、1gatuから12gatu)   1日から31日のムービークリップ(例えば、1nitiから31niti)   日曜日から月曜日のムービークリップ(例えば、nitiyoubiからgetuyoubi)   1時から24時のムービークリップ(例えば、1ziから24zi)   1分から60分のムービークリップ(例えば、1hunから60hun)   1秒から60秒のムービークリップ(例えば、1byouから60byou)

    • ベストアンサー
    • Flash
  • フラッシュのことで質問です

    フラッシュのムービークリップに外部swfファイルを読み込むとき、読み込んだswfの始点をムービークリップの左上(0.0)にしたいのですがどうすればいいでしょうか

    • ベストアンサー
    • Flash
  • ムービークリップで作成したボタンでCGIを表示させたいのですが・・・

    お世話になっております。 FLASH MX , WIN XP を使用しています。 FLASHで作られたお問い合わせフォームを編集しています。 ムービークリップインスタンスでできた「送信ボタン」にgetURLで KENTWEBのCGI「postmail」を読み込んで、メールを送信できるように したいと考えています。 ボタンインスタンスにCGIを読み込んだ時は、正常に変数を読み込み 入力内容をメール送信できるのですが、ムービークリップ インスタンスにCGIを読み込むと、変数を読み込めず「不正な処理」 となりエラーになってしまいます。 ムービークリップインスタンスでできたボタンでcgiを読み込む事は できないのでしょうか? 宜しくお願いします。

    • ベストアンサー
    • Flash
  • フラッシュで作ったプログラムについて

    フラッシュで作ったプログラム(拡張子.swf)のプログラムの中身を見たり、更新したりすることはできますでしょうか。 更新はできなくとも、どういう動きをするとか、使用してる関数(?)などを見る方法、ツールがあったら教えてください。 当方フラッシュに関する知識はありません。

  • Flash リンケージ

    ステージ上に空のムービークリップを配置して、そこにjpg画像を読み込む実験をしています。 loadMovieを使えば、外部のjpg画像を読み込めるのですが、 今やりたいのはflash内に画像を読み込んで、ライブラリ内にあるビットマップ画像(jpg)に対して、識別子を付けてスクリプト処理で表示させるというものです。 1.ステージに空のムービークリップ「mc」(←インスタンス名)を配置しています。 2.ライブラリ内のビットマップ画像には「p1」という識別子を付けています。 「p1」の識別子を使った表示方法が解らなかったので、とりあえず今はビットマップ画像を一旦新しいムービークリップで包んでそのムービークリップの識別子を「c1」として、 ルート上に mc.attachMovie("c1,"mc2",1); というように書いて、表示させています。 が、これではやりたい事と違います。 ライブラリ内のビットマップ画像に付けた識別子「p1」を利用して、 その該当するjpg画像をステージ上に配置(表示)させるにはどうすればよいでしょうか? FlashのバージョンはMXもしくは8 ASは1.0もしくは2.0です。