-
reusable code
Grettings....
I'm trying to create a package with some Events. CODE RECYCLING
Ok...the problem is:
The package:
package com.tester.utils
{
import flash.display.Sprite;
import flash.display.*;
import flash.events.MouseEvent;
import flash.events.*;
public class dragObject extends Sprite
{
private var offsetX :Number;
private var offsetY :Number;
private var scope :Object;
public function dragObject(scope:Object)
{
scope.addEventListener(MouseEvent.MOUSE_DOWN, onMousePress);
addEventListener(MouseEvent.MOUSE_UP, onMouseUnPress);
}
private function onMousePress(evt:MouseEvent):void
{
offsetX = scope.mouseX;
offsetY = scope.mouseY;
addEventListener(MouseEvent.MOUSE_MOVE, onMouseLocation);
}
private function onMouseLocation(evt:MouseEvent):void
{
scope.y = mouseY - offsetY;
scope.x = mouseX - offsetX;
evt.updateAfterEvent();
}
function onMouseUnPress(evt:MouseEvent):void
{
removeEventListener(MouseEvent.MOUSE_MOVE, onMouseLocation);
}
}
}
The flash:
import com.tester.utils.dragObject;
var container:Sprite = new Sprite();
var newClip:dragClip = new dragClip();
function getClass(obj:Object):Class {
return Class(getDefinitionByName(getQualifiedClassName(ob j)));
}
container.addChild(newClip);
addChild(container);
dragObject(container);
The Error:
TypeError: Error #1034: Type Coercion failed: cannot convert flash.display::Sprite@1a87e481 to com.tester.utils.dragObject.
at location_fla::MainTimeline/frame1()
Can someone help me please....
Thanks in Advance
-
You are not using the "new" keyword when you should be.
Code:
dragObject(container);
means "Try to cast container to a dragObject"
Code:
new dragObject(container);
means "Make a new dragObject and pass container to its constructor".