1

透明な画像と正方形があります。正方形が画像と衝突するタイミングを検出したいと考えています。ただし、画像が透明であるため、透明なピクセルとの衝突が検出されます。そのため、いくつか読んだ後、以前に使用したことのない BitmapData を使用しようとしました。そして、それは機能していません。正直なところ、次のコード機能するとは思っていませんでした。私がやりたかったことと、それをどのようにしたかったかについてのアイデアをあなたに与えるために書きました。

これが私のコードです:

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");
        }
    }
}

正方形が画像の目に見える部分と衝突した場合にのみ検出する方法を知っている人はいますか? 事前に大いに感謝します。

4

1 に答える 1