flash on 2010-7-31
[SWF(width="640", height="400", backgroundColor="0xffffff", frameRate="24")]
♥0 |
Line 100 |
Modified 2010-08-04 17:48:51 |
MIT License
archived:2017-03-20 07:08:43
ActionScript3 source code
/**
* Copyright ruiko ( http://wonderfl.net/user/ruiko )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/jdaD
*/
package {
import flash.trace.Trace;
import flash.ui.Mouse;
import flash.display.*;
import flash.text.*;
import flash.events.*;
import flash.ui.Keyboard;
//[SWF(width="640", height="400", backgroundColor="0xffffff", frameRate="24")]
public class Drag extends Sprite {
private var inputText:TextField;
private var s:Sprite = new Sprite();
private var flag:int = 1;
private var right:Sprite = new Sprite();
private var left:Sprite = new Sprite();
public function Drag():void {
//テキストボックス
inputText = new TextField();
inputText.border = true;
inputText.type = "input";
addChild(inputText);
if(flag==0 || flag==1){
right.graphics.beginFill(0x000000);
right.graphics.drawCircle(stage.stageWidth-25,stage.stageHeight-40,20);
right.graphics.endFill();
addChild(right);
}
if(flag==1 || flag==2){
left.graphics.beginFill(0x000000);
left.graphics.drawCircle(25,stage.stageHeight-40,20);
left.graphics.endFill();
addChild(left);
}
inputText.text=flag.toString();
// クリックイベントを監視する
stage.addEventListener("click", stageClick);
right.addEventListener("click", moveRight);
left.addEventListener("click", moveLeft);
}
//右に移動(オブジェクトを左にずらす)
private function moveLeft(event:MouseEvent):void {
if(flag>0){
s.x+=stage.stageWidth;
flag-=1;
}
inputText.text=flag.toString();
if(flag==0 || flag==1){
addChild(right);
}else{
removeChild(right);
}
if(flag==1 || flag==2){
addChild(left);
}else{
removeChild(left);
}
}
//左に移動(オブジェクトを右にずらす)
private function moveRight(event:MouseEvent):void {
if(flag<2){
s.x -= stage.stageWidth;
flag+=1;
}
inputText.text=flag.toString();
if(flag==0 || flag==1){
addChild(right);
}else{
removeChild(right);
}
if(flag==1 || flag==2){
addChild(left);
}else{
removeChild(left);
}
}
//イベントハンドラ
private function stageClick(event:MouseEvent):void {
if(event.target != stage) {
return;
}
// 四角を作成
//var s:Sprite = new Sprite();
s.graphics.beginFill(Math.random() * 0x1000000);
s.graphics.drawRect(0, 0, 120,50);
s.graphics.endFill();
addChild(s);
// 四角をクリックされた位置に移動
s.x = event.stageX;
s.y = event.stageY;
s.doubleClickEnabled=true;
// テキストを取得して作成
var tf:TextField = new TextField();
tf.text = inputText.text;
//addChild(tf);
inputText.text=flag.toString();
// テキストをクリックされた位置に移動
tf.x = s.x + 10;
tf.y = s.y + 10;
//マウスボタンダウン
s.addEventListener(MouseEvent.MOUSE_DOWN, rectClickDown);
//マウスボタンアップ
s.addEventListener(MouseEvent.MOUSE_UP, rectClickUp);
//ダブルクリック
s.addEventListener(MouseEvent.DOUBLE_CLICK, rectDoubleClick);
}
//ドラッグ開始
private function rectClickDown(event:MouseEvent):void{
event.target.startDrag( );
}
//ドラッグ終了
private function rectClickUp(event:MouseEvent):void{
event.target.stopDrag( );
}
//ダブルクリック
private function rectDoubleClick(event:MouseEvent):void{
//消す
removeChild(DisplayObject(event.target));
}
}
}