2013-04-07 122 views
1

我有一個透明的圖像和一個正方形。我想檢測方形與圖像碰撞的時間。但是,由於圖像是透明的,它仍然會檢測到它與透明像素髮生碰撞。所以,在我嘗試使用BitmapData之後,我還沒有使用過。所以,它不工作。說實話,我沒有想到波紋管代碼的工作。我只是寫信給你一個想法,想要做什麼以及我想做什麼。只檢測與透明圖像的可見部分碰撞(AS3)

這裏是我的代碼:

package 
{ 
import flash.display.Bitmap; 
import flash.display.BitmapData; 
import flash.display.Sprite; 
import flash.events.Event; 

/** 
* Testing Transparency 
* @author Craig Jackson 
*/ 

public class Main extends Sprite 
{ 
    public var square:Sprite; 

    [Embed(source="../lib/TestTransparency.png")] 
    public var TestTrans:Class; 

    public var testTransBitmapData:BitmapData = new BitmapData(300, 30, true, 0); 

    public var testTransBitmap:Bitmap = new TestTrans(); 

    public function Main():void 
    { 
     if (stage) init(); 
     else addEventListener(Event.ADDED_TO_STAGE, init); 
    } 

    private function init(e:Event = null):void 
    { 
     removeEventListener(Event.ADDED_TO_STAGE, init); 
     startUp(); 
    } 

    public function startUp():void 
    { 
     square = new Sprite(); 
     square.graphics.beginFill(0x666666); 
     square.graphics.drawRect(0, 0, 50, 50); 
     square.graphics.endFill(); 
     addChild(square); 

     testTransBitmapData.draw(testTransBitmap); 
     addChild(testTransBitmap); 

     addEventListener(Event.ENTER_FRAME, enterFrame); 
    } 

    public function enterFrame(e:Event):void 
    { 
     square.x = mouseX; 
     square.y = mouseY; 

     if (square.hitTestObject(testTransBitmap)) 
     { 
      trace("Touching"); 
     } 
    } 
} 

任何人都知道我可以做它只能檢測時方與圖像的可見部分碰撞? 提前致謝。

回答