AS3 円運動のクラス
2009年08月18日(火)
円運動をさせる場合、軸をずらしたmcを作りrotationを変更していたのですが
やはり基礎的なところなので作っておきました。
CircleMove.as
package {
import flash.display.Sprite;
import flash.events.Event;
public class CircleMove {
var my_sprite:Sprite;
var my_radius:uint
var my_speed:uint;
var degree:uint=0;
var centerX=0;
var centerY=0;
var speed:uint;
function CircleMove(sprite:Sprite,radius,speed) {
my_sprite=sprite;
my_radius=radius;
my_speed=speed;
centerX=my_sprite.x
centerY=my_sprite.y
my_sprite.addEventListener(Event.ENTER_FRAME,move);
}
function move(event) {
var radian = Math.PI/180*degree;
my_sprite.x=centerX+my_radius*Math.cos(radian);
my_sprite.y=centerY+my_radius*Math.sin(radian);
degree+=my_speed;
}
}
}
flaファイルは
import CircleMove; var cm=new CircleMove(ball,100,5);
さらに、JSONで渡したかったので継承したクラスを作成しました。
こんなこと普通しなそう・・・
CircleMove2.as
package {
public class CircleMove2 extends CircleMove {
function CircleMove2(obj:Object) {
my_sprite=obj.sprite;
my_radius=obj.radius;
my_speed=obj.speed;
super(my_sprite,my_radius,my_speed);
}
}
}
この場合のflaファイルは
import CircleMove2;
var cm=new CircleMove2({sprite: ball,radius:100,speed:5});
さらに、回転開始のオフセットを設定できるようにしました。
CircleMove3.as
package {
public class CircleMove3 extends CircleMove2 {
function CircleMove3(obj:Object) {
degree=obj.degree;
super(obj);
}
}
}
この場合のサンプルflaファイルは
import CircleMove3;
//リンゲージしたクラスBALL
var ball2=new BALL();
var ball3=new BALL();
prepare(ball2);
prepare(ball3);
//準備用の関数
function prepare(mc:MovieClip){
mc.x=stage.stageWidth/2;
mc.y=stage.stageHeight/2;
addChild(mc);
}
var cm2=new CircleMove2({sprite:ball2,radius:100,speed:5});
var cm3=new CircleMove3({sprite:ball3,radius:100,speed:5,degree:180});//180度から開始
となりました。
関連記事
- AS3 円運動のクラス
- AS3 TweenerのsetTimeScaleを試すつもりが
- AS3 fl.transitions
- AS3 LoaderInfoのプロパティ
- AS3 リンゲージしたmcをリンゲージ名で配置
- AS3 共通のTextFormatを複数のクラスで用いてみる。
- AS3 県の定義クラス PrefList
- AS3 TextFormatを外部クラスにしてみましたが
- AS3 最前面にもってくるDisplayObjectContainer
- Papervision3D 円柱(Cylinder)にテクスチャを貼り中からのぞく
- CSS3 CSSで角丸をつくる
- Tweener baseでトゥイーンオブジェクトを
- Event.ADDED記念日
- AS3 Event.REMOVED記念日
- AS3 XML要素の数取得