2013-02-27 57 views
0

我正在使用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(s​​pritesheet):

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

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:使用矢量圖形爲你的兔子:)

相關問題