如何检查像素颜色值并将其用于鼠标点击检测

时间:2011-10-05 17:32:36

标签: actionscript-3

我有一个内部有很多颜色的位图。我希望每种颜色在单击时都能执行不同的方法。如何确定像素的颜色值并将其用于鼠标事件?我发现了位图命中检测,但我无法弄清楚如何使用它(因为我在位图中有很多颜色)。非常感谢任何帮助,因为我被正式难倒。

2 个答案:

答案 0 :(得分:3)

您可以使用此方法Bitmapdata.getPixel() or BitmapData.getPixel32()

import flash.display.BitmapData;

var bmd:BitmapData = new BitmapData(80, 40, false, 0xFF0000);

var pixelValue:uint = bmd.getPixel(1, 1);
trace(pixelValue.toString(16)); // ff0000;

答案 1 :(得分:1)

BitmapClass是DisplayObject。 如果你想添加Mouse或KeyboardEvent必须是sthClass是InteractiveObject类。

因此,一个不可见的容器必须是Make ...因为Sprite是InteractiveObject。

import flash.display.BitmapData;
import flash.display.Bitmap;
import flash.events.MouseEvent;
import flash.display.Sprite;

var container:Sprite = new Sprite();
var bmd:BitmapData = new BitmapData(400, 400, false, 0xFFFFFF * Math.random());
var bmp:Bitmap = new Bitmap(bmd);

this.addChild(container);
container.addChild(bmp);

container.addEventListener(MouseEvent.CLICK, onClick);

function onClick(e:MouseEvent):void
{
    var obj:Sprite = e.currentTarget as Sprite;

    var bmp:Bitmap = Bitmap(obj.getChildAt(0));

    var pixelValue:uint = bmp.bitmapData.getPixel(mouseX,mouseY);

    trace(pixelValue.toString(16));
}