ドラッグで移動するブロック
これを拡張したものがhttp://wonderfl.net/c/t8Xkになります。
♥0 |
Line 55 |
Modified 2010-10-13 10:02:44 |
MIT License
archived:2017-03-20 17:39:35
ActionScript3 source code
/**
* Copyright kururu99 ( http://wonderfl.net/user/kururu99 )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/a6fI
*/
package {
import flash.display.Sprite;
public class Main extends Sprite {
public function Main():void {
var dragger:Dragger = new Dragger();
this.addChild(dragger);
}
}
}
////////////////////////////////////
////////////////////////////////////
import flash.events.*;
import flash.events.MouseEvent;
import flash.display.Sprite;
import flash.display.Stage;
class Dragger extends Sprite {
var draggB:Sprite;
public function Dragger(width:int=100, height:int=100):void {
draggB = getBox(0x0099ff,width,height);
this.addChild(draggB);
draggB.addEventListener(Event.ENTER_FRAME,MoveScroll);
}
private function getBox(color:uint,width:int=100, height:int=100):Sprite {
var box:Sprite = new Sprite();
box.graphics.beginFill(color);
box.graphics.drawRoundRect(0, 0, width, height,10);
box.graphics.endFill();
return box;
}
private function MoveScroll(e):void {
removeEventListener(Event.ENTER_FRAME, MoveScroll);
draggB.addEventListener(MouseEvent.MOUSE_DOWN, scrollbarHandler);
stage.addEventListener(MouseEvent.MOUSE_UP, scrollbarUpHandler);
}
private function scrollbarHandler(e):void {
addEventListener(Event.ENTER_FRAME, onScrollArea );
}
private function scrollbarUpHandler(e):void {
removeEventListener(Event.ENTER_FRAME, onScrollArea );
}
private function onScrollArea(e):void {
e.target.x=stage.mouseX-draggB.width/2;
e.target.y=stage.mouseY-draggB.height/2;
if (e.target.x<0) {
e.target.x=0;
}
if (e.target.y<0) {
e.target.y=0;
}
if (e.target.x>stage.stageWidth-draggB.width) {
e.target.x=stage.stageWidth-draggB.width;
}
if (e.target.y>stage.stageHeight-draggB.height) {
e.target.y=stage.stageHeight-draggB.height;
}
}
}