Как я могу внедрить инструмент прозрачного ластика во Flex? - PullRequest
2 голосов
/ 29 декабря 2010

Как реализовать ластик во Flex, чтобы при стирании в mx: Image он делал область прозрачной?

Ответы [ 4 ]

2 голосов
/ 30 декабря 2010
        protected function myImage_completeHandler(event:Event):void
        {
            // TODO Auto-generated method stub
            trace("file loaded");
            var tempBdData:BitmapData = new BitmapData(myImage.contentWidth,myImage.contentHeight,true);
            tempBdData.draw(myImage);
            (myImage.content as Bitmap).bitmapData = tempBdData;
        }

    ]]>
</mx:Script>
<mx:Image
    id="myImage"
    source="http://www.google.com/images/logos/ps_logo2.png"
    complete="myImage_completeHandler(event)"
    mouseDown="(myImage.content as Bitmap).bitmapData.setPixel32(event.localX,event.localY,0x00000000)"/>
1 голос
/ 29 декабря 2010

Из большинства функций стирания, которые я видел, я допускаю не так много, он не превращает что-то прозрачное (изменение альфа), вместо этого он рисует цветом фона.

YMMV

1 голос
/ 29 декабря 2010

Возможно, вы можете попытаться нарисовать ваше изображение в объекте BitmapData, а затем использовать функцию setPixel32:

Пример:

setPixel32 (coordX, coordY, 0x60FF0000);

, где 0x60FF0000:

  • 60 (альфа) * ​​1009 *
  • FF (красный)
  • 00 (зеленый)
  • 00 (синий)
0 голосов
/ 29 декабря 2010

Мой подход заключается в том, чтобы добавить изображение черной маски в компонент Image (через свойство «mask»), которое изначально не будет влиять на изображение, а затем закрасить белым цветом изображение маски там, где пользователь нажимает / перетаскиваетв изображении.Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...