import flash.utils.getTimer;
import flash.events.Event;
Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT;
var mc:apieinfo = new apieinfo;
stage.addChild(mc);
var fl_DragBounds_2: Rectangle = new Rectangle(0, 50, 0, (mc.height*-1)+(stage.stageHeight-100));
var startTime:int;
var endTime:int;
var startY:Number;
var endY:Number;
var startX:Number;
var endX:Number;
mc.addEventListener(TouchEvent.TOUCH_BEGIN, fl_TouchBeginHandler);
mc.addEventListener(TouchEvent.TOUCH_END, fl_TouchEndHandler);
mc.addEventListener(TouchEvent.TOUCH_MOVE, onTouchMove);
mc.addEventListener(TouchEvent.TOUCH_ROLL_OUT,fl_TouchEndHandler);
function fl_TouchBeginHandler(event: TouchEvent): void {
event.target.startTouchDrag(event.touchPointID, false, fl_DragBounds_2);
startTime = getTimer();
startY = event.stageY;
startX = event.stageX;
}
function onTouchMove(event:TouchEvent) {
}
function fl_TouchEndHandler(event: TouchEvent){
event.target.stopTouchDrag(event.touchPointID);
endTime = getTimer();
endY = event.stageY;
endX = event.stageX;
bottomY = stage.stageHeight - event.target.height;
setSpeed();
if(speed>0){
stage.addEventListener(Event.ENTER_FRAME, movieUP);
}
if(speed<0){
stage.addEventListener(Event.ENTER_FRAME, movieDOWN);
}
if(event.target.y > 0){
upSpeedRate = event.target.y*0.5;
stage.addEventListener(Event.ENTER_FRAME, backToStart);
}
if(event.target.y < (stage.stageHeight-event.target.height)){
downSpeedRate = ((event.target.y*-1)+bottomY)*0.5;
stage.addEventListener(Event.ENTER_FRAME, backToEnd);
}
}
var upSpeedRate:int;
var downSpeedRate:int;
var slowingRate:Number = 0.75;
var slowingRate2:Number = 0.5;
var bottomY:int;
var a:Number=0;
var b:Number=0;
function backToStart(e:Event):void{
if(mc.y > 0){
stage.removeEventListener(Event.ENTER_FRAME, movieDOWN);
stage.removeEventListener(Event.ENTER_FRAME, movieUP);
speed=0;
mc.y -= upSpeedRate;
upSpeedRate = upSpeedRate * slowingRate2;
}
if(upSpeedRate == 0){
mc.y = 0;
stage.removeEventListener(Event.ENTER_FRAME, backToStart);
}
}
function backToEnd(e:Event):void{
if(mc.y < (stage.stageHeight-mc.height)){
stage.removeEventListener(Event.ENTER_FRAME, movieDOWN);
stage.removeEventListener(Event.ENTER_FRAME, movieUP);
speed=0;
mc.y += downSpeedRate;
downSpeedRate = downSpeedRate * slowingRate2;
}
if(downSpeedRate == 0){
mc.y = (mc.height-800)*-1;
stage.removeEventListener(Event.ENTER_FRAME, backToEnd);
}
}
var speed:int;
var sumY:Number;
var distance:Number;
function setSpeed(){
distance = startY-endY;
speed = ((distance *1000) / (endTime-startTime))/24;
}
function movieUP(e:Event):void{
mc.y -= speed;
speed = speed * slowingRate;
if(mc.y < (stage.stageHeight-mc.height)){
upSpeedRate = mc.y*0.5;
stage.addEventListener(Event.ENTER_FRAME, backToEnd);
stage.removeEventListener(Event.ENTER_FRAME, movieUP);
}
if(speed == 0){
stage.removeEventListener(Event.ENTER_FRAME, movieUP);
}
}
function movieDOWN(e:Event):void{
mc.y -= speed;
speed = speed * slowingRate;
if(mc.y > 0){
upSpeedRate = mc.y*0.5;
stage.addEventListener(Event.ENTER_FRAME, backToStart);
stage.removeEventListener(Event.ENTER_FRAME, movieDOWN)
}
if(speed == 0){
stage.removeEventListener(Event.ENTER_FRAME, movieDOWN)
}
}
works fine and I get normal coordinates
when i added mc with addChild(mc)
Other problem is that if I do this:
mc.addEventListener(TouchEvent.TOUCH_BEGIN, fl_TouchBeginHandler);
mc.addEventListener(TouchEvent.TOUCH_END, fl_TouchEndHandler);
mc.addEventListener(TouchEvent.TOUCH_MOVE, onTouchMove);
mc.addEventListener(TouchEvent.TOUCH_ROLL_OUT,fl_TouchEndHandler);
In these TOUCH events I can use event.target.x, event.target.y and etc...
but if I call from these events to other functions in other functions I have to use mc.height, mc.x, mc.y and etc.
But I dont want to write similar functions to every MovieClip with different name.
Maby somehow I can write name for example:
var circle_mc:round_circle = new round_circle;
stage.addChild(circle_mc);
var something:String = "circle_mc";
function changeX() {
if (something.x > 0){
something.x = 0;
}
}
and use something.x; something.height in every other function. So i just need to change var something to some MovieClip name.