如何获得精灵的填充颜色?

How can I get fill color of sprite?

我在舞台上随机创建圆圈并监听对圆圈的点击。当我点击一个圆圈时,我想描绘圆圈的填充颜色。我怎样才能得到这些数据?

这是我用来创建圆圈的:

// create the circle
var circle:Sprite = new Sprite();
circle.graphics.clear();
var circleColor = randomColor();
circle.graphics.beginFill(circleColor, 1);
circle.graphics.drawCircle(0, 0, circleRadius);
circle.graphics.endFill();

点击圆圈时触发的函数:

private function clickCircle(event:MouseEvent): void {
    var currentCircleName = event.currentTarget.name;

    // hide the circle
    event.currentTarget.visible = false;

    // update stats
    clickCount++;
    txt_clicksCount.text = String(clickCount);  
}

好的,所以我发现你不能通过这个question+answer向精灵添加数据。

我决定做的是创建一个新的 class 来扩展 Sprite。

package  {
   import flash.display.Sprite;

    public class altSprite extends Sprite {
        public var color:String;
    }
}

所以现在我将 Sprite 调用更改为:

var circle:altSprite = new altSprite();

并通过以下操作将颜色存储到此 altSprite:

circle.color = circleColor;

我可以在我的函数中调用这个颜色:

trace(event.currentTarget.color);

查看以下 link 并使用调用的方法:

readGraphicsData()  

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/Graphics.html#readGraphicsData

您需要 Flash Player 11.6、AIR 3.6

希望对您有所帮助。