flash on 2009-11-2
♥0 |
Line 51 |
Modified 2009-11-02 22:59:41 |
MIT License
archived:2017-03-20 16:54:08
ActionScript3 source code
/**
* Copyright kske ( http://wonderfl.net/user/kske )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/zsEm
*/
package {
import flash.display.Sprite;
import flash.display.*;
import flash.events.*;
public class FlashTest extends Sprite {
private var spr1:Sprite;
private var spr2:Sprite;
private var spr3:Sprite;
public function FlashTest() {
// 表示用sprite用意
spr1 = new Sprite();
var g:Graphics = spr1.graphics;
g.beginFill(0x222222, 1);
g.drawRect(0, 0, 400, 400);
g.endFill();
spr2 = new Sprite();
g = spr2.graphics;
g.beginFill(0xff44ff, 1);
g.drawRect(20, 0, 400, 400);
g.endFill();
spr3 = new Sprite();
g = spr3.graphics;
g.beginFill(0x3300ff, 1);
g.drawRect(40, 0, 400, 400);
g.endFill();
stage.addChild(spr3);
stage.addChild(spr2);
stage.addChild(spr1);
// sprite用意ここまで
// EventListenerをアタッチ
// spr1.addEventListener(MouseEvent.MOUSE_OVER, onMouseOverSpr1);
spr2.addEventListener(MouseEvent.MOUSE_OVER, onMouseOverSpr2, false, 0, true);
spr3.addEventListener(MouseEvent.MOUSE_OVER, onMouseOverSpr3, false, 0 ,true);
}
//各イベントリスナ
//マウスオーバー関係
//要らない子
/*function onMouseOverSpr1(e:MouseEvent){
}*/
private function onMouseOverSpr2(e:MouseEvent):void{
spr1.addEventListener(Event.ENTER_FRAME, onDrawSpr1, false, 0, true);
}
private function onMouseOverSpr3(e:MouseEvent):void{
spr1.addEventListener(Event.ENTER_FRAME, onDrawSpr1, false, 0, true);
spr2.addEventListener(Event.ENTER_FRAME, onDrawSpr2, false, 0, true);
//先に下のオブジェクトにカーソルが乗った場合のために、
//上のオブジェクト全てにEnterFrameのリスナーをつける
}
//エンターフレーム関係
private function onDrawSpr1(e:Event):void{
spr1.x += ((20 - spr1.width) - spr1.x)/10;
if( Math.ceil(spr1.x) === Math.ceil(0 - spr1.width) ){
removeEventListener(Event.ENTER_FRAME, onDrawSpr1);
// 小数点処理の関係で、端数を切り上げて比較
// 充分に目的地に近ければEnterFrameのリスナーを取り外す
// 外さないと面倒なことになる。
}
}
private function onDrawSpr2(e:Event):void{
spr2.x += ((40 - spr1.width) - spr2.x)/10;
if( Math.ceil(spr2.x) === Math.ceil(0 - spr2.width) ){
removeEventListener(Event.ENTER_FRAME, onDrawSpr2);
// 同上
}
}
}
}