Работает, но странно...
Потому что битмап находится дальше чем мувиклип.
Класс:
Код AS3:
package MikroacseAS3Lib.HitTest{
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.geom.Point;
import flash.geom.Matrix;
import flash.display.DisplayObject;
import flash.geom.Rectangle;
public class hit{
public function hit() {
//constructor
}
public static function Test(object1:DisplayObject,object2:DisplayObject):Boolean{
var bmpd1:BitmapData;
var bmpd2:BitmapData;
var bounds1:Rectangle = object1.getBounds(object1); //create Rect's
var bounds2:Rectangle = object2.getBounds(object1);
var mtrx1:Matrix = new Matrix(); //create Matrix's
var mtrx2:Matrix = new Matrix();
var isHit:Boolean;
mtrx1.translate(-bounds1.left, -bounds1.top); //translate
mtrx2.translate(-bounds2.left, -bounds2.top);
bmpd1 = new BitmapData(bounds1.width, bounds1.height, true, 0); //create BitmapData's
bmpd2 = new BitmapData(bounds2.width, bounds2.height, true, 0);
bmpd1.draw(object1, mtrx1); //draw MovieClips to Bitmap's
bmpd2.draw(object2, mtrx2);
isHit=bmpd1.hitTest(new Point(), 255, bmpd2, new Point(), 255); // hit test
bmpd1.dispose(); //clear Bitmaps
bmpd2.dispose();
return isHit; //return false or true
}
}
}
Вызов:
Код AS3:
import MikroacseAS3Lib.HitTest.*
import flash.events.MouseEvent;
import flash.filters.GlowFilter;
import flash.display.DisplayObject;
import flash.events.Event;
stage.addEventListener(MouseEvent.MOUSE_DOWN,down)
stage.addEventListener(MouseEvent.MOUSE_UP,up)
stage.addEventListener(Event.ENTER_FRAME,ef)
function ef(e:Event){
falsetrue.text=String( hit.Test(mc1,mc2) )
}
function down(e:MouseEvent){
try {
e.target.startDrag()
setChildIndex(e.target as DisplayObject,numChildren-1)
} catch(e:Error){
}
}
function up(e:MouseEvent){
try {
e.target.stopDrag()
} catch(e:Error){
}
}
Что и как:
[IMG]http://i.************/13/4f3960d8bd991.png[/IMG]
----------
[IMG]http://i.************/13/4f39607e8be91.png[/IMG]
Добавлено через 57 минут
Не могу найти выхода...
Такое ощущение, что битмап съезжает на точку регистрации черного круга.