package
{
import flash.display.*;
import flash.events.*;
import flash.utils.*;
import flash.external.*;
import com.tadSrc.tadsClasses.DOMExEvent;
import com.tadSrc.tadsClasses.DOMExEventDispatcher;
[SWF(frameRate = '20', backgroundColor = '0x000000', width = '800', height = '300')]
public class wrapperDragResponse extends Sprite
{
private var ballDragStatus:Boolean = false; //true when the ball is being dragged
private var wrapperPassage:DOMExEventDispatcher;
private var wrapperPassage2:DOMExEventDispatcher;
private var theBall:Sprite;
public function get dragStatus():Boolean { return ballDragStatus; }
public function wrapperDragResponse()
{
if (stage) initialize()
else
addEventListener(Event.ADDED_TO_STAGE, initialize, false, 0, true);
}
private function initialize(e:Event = null):void {
theBall = new Sprite();
with(theBall.graphics) { beginFill(0x00FF00); drawCircle(0,0,25); }
theBall.x = stage.stageWidth/2;
theBall.y = stage.stageHeight/2;
addChild(theBall);
wrapperPassage = new DOMExEventDispatcher("document.onmousedown", ["clientX", "clientY"]);
wrapperPassage.addEventListener(DOMExEvent.DOMEX_EVENT, dragHandler);
wrapperPassage2 = new DOMExEventDispatcher("document.onmouseup", ["clientX", "clientY"]);
wrapperPassage2.addEventListener(DOMExEvent.DOMEX_EVENT, dragRelease);
theBall.addEventListener(Event.ENTER_FRAME, considerBallPosition);
stage.addEventListener(MouseEvent.MOUSE_UP, dragRelease);
var theOnMoveJavaScript:XML =
<script>
<![CDATA[
function () {
dragStatus = false;
document.onmousemove = function (e) {
var thee = (e != undefined) ? e : event;
if (dragStatus == true) {
document.getElementById("aBall").style.left = thee.clientX -(52/2) +"px";
document.getElementById("aBall").style.top = thee.clientY -(54/2)+ "px";
}
};
}
]]>
</script>;
setTimeout(function ():void {ExternalInterface.call(theOnMoveJavaScript);}, 500);
}
private function considerBallPosition(e:Event):void
{
theBall.alpha = 1;
if (theBall.x >= stage.stageWidth - theBall.width/2 || theBall.x <= theBall.width/2)
{theBall.x = -30;theBall.alpha -= .2}
if (theBall.y >= stage.stageHeight - theBall.height/2 || theBall.y <= theBall.height/2)
{theBall.y = -30;theBall.alpha -= .2;}
}
private function dragHandler(e:Event):void
{
var dragStatusToTrue:XML = <script><![CDATA[function () { dragStatus = true; }]]></script>;
ExternalInterface.call(dragStatusToTrue);
theBall.startDrag(true);theBall.visible = false;
ballDragStatus = true;
setTimeout(function ():void { theBall.visible = true; }, 50);
}
private function dragRelease(e:Event):void
{
var dragStatusToFalse:XML = <script><![CDATA[function () { dragStatus = false; }]]></script>;
ExternalInterface.call(dragStatusToFalse);
theBall.stopDrag();
ballDragStatus = false;
}
}
}