【隅に】逃げるボタン【追い込めない】
マウスから逃げるボタン
・minimalcompsの習作
これを使うための習作
ローカルでの動作確認用
/**
* Copyright o_healer ( http://wonderfl.net/user/o_healer )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/gdBC
*/
/*
マウスから逃げるボタン
・minimalcompsの習作
*/
package {
import com.bit101.components.*;//これを使うための習作
import flash.display.*;
import flash.events.*;
import flash.geom.*;
[SWF(width="465", height="465", frameRate="60", backgroundColor="0x000000")]//ローカルでの動作確認用
public class Test extends Sprite{
static public const MOVE_VEL:Number = 10.0;//一フレームあたりの移動量
public var m_Button:PushButton;//ボタン
public function Test():void{//初期化処理
m_Button = new PushButton(this, 465/2-100/2,465/2-20/2, "HaHaHa!", OnPress);//ボタンを生成
addEventListener(Event.ENTER_FRAME, Update);//毎フレームUpdateを呼ぶ
}
public function OnPress(e:Event):void{//押されたら
m_Button.label = "GAAAAAAAH!!!!";//叫んで
removeEventListener(Event.ENTER_FRAME, Update);//もう動かない(Updateを呼ばない)
}
public function Update(e:Event):void{//毎フレーム実行する
var PseudoMouseX:Number = (mouseX - 465/2) * 1.2 + 465/2;//マウスの位置を少し補正して
var PseudoMouseY:Number = (mouseY - 465/2) * 1.2 + 465/2;//端に追い詰められないようにして
var Gap:Point = new Point(m_Button.x+m_Button.width/2-PseudoMouseX, m_Button.y+m_Button.height/2-PseudoMouseY);//その位置の逆に動く
if(Gap.length < 1){Gap.x = 1;}
Gap.normalize(MOVE_VEL);//長さをMOVE_VELに整える
m_Button.x += Gap.x;//実際に移動
m_Button.y += Gap.y;
if(m_Button.x < 0){m_Button.x = 0;}//範囲制限
if(m_Button.x > 465-m_Button.width){m_Button.x = 465-m_Button.width;}
if(m_Button.y < 0){m_Button.y = 0;}
if(m_Button.y > 465-m_Button.height){m_Button.y = 465-m_Button.height;}
}
}
}