http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/BitmapData.html?filter_coldfusion=9&filter_flex=3&filter_flashplayer=10&filter_air=1.5#floodFill%28%29
mouseX和mouseY的總是鼠標的位置添加一個點擊監聽到任何對象,只是使用mouseX/mouseY的,否則的MouseEvent的event.localX和event.localY爲對象的偵聽器附加到
<mx:Image id="myImage" click="(myImage.content as Bitmap).bitmapData.floodFill(event.localX,event.localY,0xFFFFFF)" source="http://www.carolynsbloomingcreations.com/images/square.gif"/>
這裏有一個解決方案,如果你,否則我無法通過的BitmapImage得到的位圖數據的句柄使用Flex 4.5英雄框架,上述方案也仍然有效使用Flex 3或4:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" xmlns:local="*">
<s:layout>
<s:VerticalLayout/>
</s:layout>
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<!--
<mx:Image
id="myImage"
click="(myImage.content as Bitmap).bitmapData.floodFill(event.localX,event.localY,0xFFFFFF)"
source="http://www.carolynsbloomingcreations.com/images/square.gif"/>
-->
<fx:Script>
<![CDATA[
private function handleClick(event:MouseEvent):void
{
trace('test');
var tempData:BitmapData = new BitmapData(myBitmapImage.width,myBitmapImage.height);
tempData = myBitmapImage.bitmapData;
var localPoint:Point = container.globalToLocal(new Point(mouseX,mouseY));
tempData.floodFill(localPoint.x,localPoint.y,0xFFFFFFFF);
myBitmapImage.source = tempData;
trace(localPoint.x + ":" + localPoint.y);
}
]]>
</fx:Script>
<s:Group
id="container"
click="handleClick(event)">
<s:BitmapImage
id="myBitmapImage"
source="@Embed('square.gif')" />
</s:Group>
</s:Application>
即使他們暴露的位圖數據在4.5框架,它是唯一的,雖然,所以我不得不把它複製,並重新分配給似乎工作
BTW有趣的名字來源,只想把它高達88閱讀並且那個助焊劑電容器必須完全充電並且您準備好去1.21 jigawatts :) – shaunhusain 2011-01-07 03:28:22