flash on 2013-7-2
♥0 |
Line 117 |
Modified 2013-07-03 11:51:44 |
MIT License
archived:2017-03-30 02:46:51
ActionScript3 source code
/**
* Copyright tepe ( http://wonderfl.net/user/tepe )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/nJFN
*/
package {
import flash.text.TextField;
import flash.events.*;
import flash.display.*;
public class FlashTest extends Sprite {
private var mov:Number = 1;
private var focusObj:Object;
private var scrX:Number=0;
private var scrY:Number=0;
private var scrScale:Number = 1.0;
private var scrRotate:Number = 0;
private var field:Sprite = new Sprite();
private var tf:TextField = new TextField();
private var stack:Array = new Array();
private var obj1:Sprite = new Sprite();
private var obj2:Sprite = new Sprite();
public function FlashTest() {
// write as3 code here..
graphics.beginFill(0xff0000);
graphics.drawRect(0,0,400,400);
graphics.endFill();
stage.addEventListener(KeyboardEvent.KEY_DOWN,onKey);
stage.addEventListener(Event.ENTER_FRAME,onFrame);
addChild(field);
with(field.graphics){
lineStyle(1,0x00ff00);
moveTo(-250,0);
lineTo(250,0);
moveTo(0,-250);
lineTo(0,250);
}
stack.push(field);
with(obj1){
x = 150;
y = 100;
scaleX = scaleY = 0.3;
rotation = 40;
graphics.lineStyle(1,0x000000);
graphics.drawCircle(0,0,30);
graphics.moveTo(0,0);
graphics.lineTo(50,0);
}
field.addChild(obj1);
with(obj2){
x = 150;
y = 100;
scaleX = scaleY = 0.3;
rotation = 40;
graphics.lineStyle(1,0x000000);
graphics.drawCircle(0,0,30);
graphics.moveTo(0,0);
graphics.lineTo(50,0);
}
obj1.addChild(obj2);
addChild(tf);
focusObj = field;
}
private function changeParent(target:Sprite):void{
var obj:Object = new Object();
obj.x = target.x;
obj.y = target.y;
obj.scale = target.scaleX;
obj.rotate = target.rotation;
obj.target = target;
stack.push(obj);
scrX += target.x;
scrY += target.y;
scrX *= scrScale;
scrY *= scrScale;
target.x = 0;
target.y = 0;
scrScale *= target.scaleX;
target.scaleX = target.scaleY = 1.0;
focusObj = target;
}
private function changeParent2():void{
//if(stack.lenght <= 2)return;
var obj:Object = stack.pop();
var target:Sprite = obj.target;
scrScale /= obj.scale;
target.scaleX = target.scaleY = obj.scale;
scrX -= obj.x;
scrY -= obj.y;
target.x = obj.x;
target.y = obj.y;
}
private function onFrame(e:Event):void{
update();
}
private function update():void{
field.x = scrX;
field.y = scrY;
field.scaleX = field.scaleY = scrScale;
field.rotation = scrRotate;
}
private function onKey(e:KeyboardEvent):void{
if(e.keyCode == 40){
scrY -= mov;
}
else if(e.keyCode == 38){
scrY += mov;
}
else if(e.keyCode == 39){
scrX -= mov;
}
else if(e.keyCode == 37){
scrX += mov;
}
if(e.keyCode == 13){
changeParent(focusObj.getChildAt(0));
tf.text = "onChange";
}
else if(e.keyCode == 8){
changeParent2();
tf.text = "onChange2";
}
}
}
}