2008年11月29日
追いかけるActionScript
最近ActionScriptの勉強をやってます。
クリックすると追いかけてくるAS。今できるのはせいぜいこのくらい。
FlashPlayer9以上が必要です。
ソースコードは続きからどうぞ。
メインのクラス。 途中コメントアウトしてる部分のコメントを外すとマウスの動きに追従するようになる。
package { import net.hextomino.Follow; import flash.display.Sprite; import flash.events.MouseEvent; import flash.text.TextField; public class Main extends Sprite { public function Main():void { var follow:Follow = new Follow(); addChild(follow.getShape()); stage.addEventListener(MouseEvent.CLICK, follow.begin); //stage.addEventListener(MouseEvent.MOUSE_MOVE, follow.begin); } } }
ついてくるもの(ball)の動きを定義。
package net.hextomino { import flash.display.Shape; import flash.display.Sprite; import flash.events.Event; import flash.events.MouseEvent; public class Follow extends Sprite { private var ball:Shape; private const RADIUS:int = 15; // ボールの半径 private const EASING:Number = 0.1; // 減速率 // ボールの目的地 private var toX:Number; private var toY:Number; public function Follow() { // ボールの作成 ball = new Shape(); ball.graphics.beginFill(0xAAAAAA); ball.graphics.lineStyle(1, 0xFFFFFF); ball.graphics.drawCircle(0, 0, RADIUS); ball.graphics.endFill(); } /** * Begin ball moving. * @param evt */ public function begin(evt:MouseEvent) { // 行き先をクリック位置に更新 toX = evt.stageX; toY = evt.stageY; addEventListener(Event.ENTER_FRAME, move); } /** * Move ball to distination with easing. * @param evt */ private function move(evt:Event):void { // 行き先までの距離を計算 var distX = toX - ball.x; var distY = toY - ball.y; if(Math.abs(distX) < 0.5 && Math.abs(distY) < 0.5) { // ある程度まで近づいたら目的地までボールを移動して // 移動を行うイベントを削除 ball.x = toX; ball.y = toY; removeEventListener(Event.ENTER_FRAME, move); } else { // まだ目的地から離れているならボールを移動 ball.x += (toX - ball.x) * EASING; ball.y += (toY - ball.y) * EASING; } } /** * Get Shape object. * @return */ public function getShape():Shape { return ball; } } }
とりあえず授業の実験で作ったペイントソフトくらいのものは 作れるようになろうかと。
参考:FLASH OOP for ActionScript 3.0 / 翔泳社
GoogleReaderを3ペイン表示にするスクリプトのα版
クリック動作を無効にするジョークブックマークレット
文字サイズを拡大縮小するスクリプト
ダブルクリックでスクロールするスクリプト
電卓を表示するブックマークレット
ごくごく一部の顔文字を絵文字に置き換えるスクリプト
クリック動作を無効にするジョークブックマークレット
文字サイズを拡大縮小するスクリプト
ダブルクリックでスクロールするスクリプト
電卓を表示するブックマークレット
ごくごく一部の顔文字を絵文字に置き換えるスクリプト
Posted by Handle at 00:03│Comments(0)│プログラミング
コメントフォーム