如何使movieClip的alpha部分不可点击(动作椋鸟)?
问题描述:
我正在使用Starling。 我无法弄清楚如何使位图不可点击的alpha部分 - 说我有一个兔子在中心和alpha周围。如何使movieClip的alpha部分不可点击(动作椋鸟)?
第一i-嵌入位图:
[Embed(source="assets/stuff.xml", mimeType="application/octet-stream")]public static const Axml:Class;
[Embed(source="assets/stuff.png")]public static const Apng:Class;
然后创建位图atlass(spritesheet):
var tx1:Texture = Texture.fromBitmap(new Apng());
var xm1:XML = XML(new Axml());
var atlas:TextureAtlas = new TextureAtlas(tx1, xm1);
我提出的MovieClip并添加位图以它这样:
var movie:MovieClip = new MovieClip(atlas.getTextures("rabbit_run_"), 18);
addChild(movie);
movie.play();
starling.core.Starling.juggler.add(movie);
但当我点击它即使在alpha部分movieClip变成“点击”。 我只需要兔子本身可以点击,而不是围绕它!
如何使alpha不可点击?谢谢
答
1:您不能使图像在一个区域中可点击而在另一个区域不可点击。但是你能在鼠标获得像素的颜色,而忽略了ckicks透明像素
import flash.events.MouseEvent;
import flash.display.BitmapData;
var rabbitBitmap:BitmapData = new BitmapData(rabbit.width, rabbit.height, true, 0xFFFFFFFF);
rabbitBitmap.draw(rabbit);
addEventListener(MouseEvent.MOUSE_MOVE, mmh)
rabbit.addEventListener(MouseEvent.CLICK, mch)
rabbit.buttonMode = true;
function mmh(e:MouseEvent):void {
rabbit.useHandCursor = getAlpha() != 255;
}
function mch(e:MouseEvent):void {
if (getAlpha() != 255) {
// ... do someth
}
}
function getAlpha():int {
var rgba:uint = rabbitBitmap.getPixel32(rabbit.mouseX, rabbit.mouseY);
return rgba & 0xff;
}
2:使用矢量图形为你的兔子:)