• ベストアンサー

actionscript3.0 rotationについて

actionscript3.0 rotationについて btnを押すごとにmcを時計回りに90度減速させながら回転させたいと思っています。 しかし2回ボタンを押して180度回転させるまではうまくいくのですが 3回目に270度になると、回転がとまりません。 分岐させて、-90度回そうと思うと(当たり前ですが)逆回転してしまいます。 どのように記述すればよいでしょうか? よろしくお願いします。 以下スクリプトです。 var i:int=0; function onEnter(event:Event):void{ mc.rotation += (i-mc.rotation)*0.1; } addEventListener(Event.ENTER_FRAME, onEnter); btn.addEventListener(MouseEvent.MOUSE_DOWN, MouseLDownFunc); function MouseLDownFunc(event:MouseEvent):void{ i+=90; };

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

  • ベストアンサー
  • bumeshi
  • ベストアンサー率100% (4/4)
回答No.2

マウスイベントはbtnからですね。失礼。 var i:int=0; var r = mc.rotation; function onEnter(event:Event):void{  r += (i-r)*0.1;  mc.rotation = r; } addEventListener(Event.ENTER_FRAME, onEnter); btn.addEventListener(MouseEvent.MOUSE_DOWN, MouseLDownFunc);  function MouseLDownFunc(event:MouseEvent):void{  i+=90; };

shiraito
質問者

お礼

返事が遅くなり大変申し訳ございませんでした。 教えていただいたやり方で、問題なくできました。 困っていたところをありがとうございました!

その他の回答 (1)

  • bumeshi
  • ベストアンサー率100% (4/4)
回答No.1

rotationプロパティ参照では360度は0度と認識されるからですかね。 ↓rotationプロパティを直接いじるのではなく、  一度変数に入れてから、それをrotationに代入してください。 var i:int=0; var r = mc.rotation; function onEnter(event:Event):void{  r += (i-r)*0.1;  mc.rotation = r; } addEventListener(Event.ENTER_FRAME, onEnter); mc.addEventListener(MouseEvent.MOUSE_DOWN, MouseLDownFunc);  function MouseLDownFunc(event:MouseEvent):void{  i+=90; };

関連するQ&A