如何使movieClip的alpha部分不可点击(actionscript starling)?
我用的是椋鸟。 我不知道如何使位图的alpha部分不可点击——假设我有一只兔子在中间,alpha在周围 首先,我嵌入位图:如何使movieClip的alpha部分不可点击(actionscript starling)?,actionscript,air,flash-builder,flashdevelop,Actionscript,Air,Flash Builder,Flashdevelop,我用的是椋鸟。 我不知道如何使位图的alpha部分不可点击——假设我有一只兔子在中间,alpha在周围 首先,我嵌入位图: [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(精灵表)
[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(精灵表):
我制作了一个MovieClip并向其中添加位图,如下所示:
var movie:MovieClip = new MovieClip(atlas.getTextures("rabbit_run_"), 18);
addChild(movie);
movie.play();
starling.core.Starling.juggler.add(movie);
但当我点击它时,即使是在阿尔法部分的电影里,Lip也会变成“点击”。
我只需要兔子本身是可点击的,而不是在它周围
如何使alpha不可点击?谢谢1:您不能使图像在一个区域可单击,而在另一个区域不可单击。但你们可以在鼠标下得到像素的颜色,忽略透明像素上的斑点
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:为您的兔子使用矢量图形:)
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;
}