- ベストアンサー
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; };
- みんなの回答 (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; };
その他の回答 (1)
- bumeshi
- ベストアンサー率100% (4/4)
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; };
お礼
返事が遅くなり大変申し訳ございませんでした。 教えていただいたやり方で、問題なくできました。 困っていたところをありがとうございました!