lange Geschichte kurz, ich habe ein Bild dafür gemacht. Ich bin Anfänger in actionscripting, fand heraus, dass nur Animation nicht ausreicht.Actionscript 3, flash: Bereich dynamisch löschen?
Was ich versuche zu erreichen:
lange Geschichte kurz, ich habe ein Bild dafür gemacht. Ich bin Anfänger in actionscripting, fand heraus, dass nur Animation nicht ausreicht.Actionscript 3, flash: Bereich dynamisch löschen?
Was ich versuche zu erreichen:
Sie können eine einfache Maske verwenden, um dies zu erreichen, . Hier ist ein funktionierendes Beispiel (mit linker Maustaste, obwohl ich glaube nicht, richtige für diesen geeignet wäre.):
package examples
{
import flash.display.Sprite;
import flash.display.Stage;
import flash.events.MouseEvent;
import flash.ui.Mouse;
public class MaskTest extends Example
{
private var _toBeErased:Sprite;
private var _discoverable:Sprite;
private var _holesContainer:Sprite;
private var _mouseIsPressed:Boolean = false;
public function MaskTest()
{
}
// Call this method once this Class instance has been added to stage
public function init():void
{
// Create sprites
_toBeErased = new Sprite();
addChild(_toBeErased);
_discoverable = new Sprite();
addChild(_discoverable);
_holesContainer = new Sprite();
addChild(_holesContainer);
// Draw sprites
_toBeErased.graphics.beginFill(0xFFFF00);
_toBeErased.graphics.drawRect(0, 0, 900, 600);
_toBeErased.graphics.endFill();
_discoverable.graphics.beginFill(0xFFAAAA);
_discoverable.graphics.drawRect(0, 0, 900, 600);
_discoverable.graphics.endFill();
// Set mask
_discoverable.mask = _holesContainer;
// Add mouse listeners
stage.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMove);
stage.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
stage.addEventListener(MouseEvent.MOUSE_UP, onMouseUp);
}
// Mouse listeners callbacks...
private function onMouseDown(e:MouseEvent):void{
_mouseIsPressed = true;
}
private function onMouseUp(e:MouseEvent):void{
_mouseIsPressed = false;
}
private function onMouseMove(e:MouseEvent):void
{
if(!_mouseIsPressed)
return;
// Get a random size for circle
var radius:Number = 5 + (Math.random()*10-5);
// Create new circle and paint it
var circle:Sprite = new Sprite();
circle.graphics.beginFill(0x000000);
circle.graphics.drawCircle(0, 0, radius);
circle.graphics.endFill();
// Move it randomly, just a bit
circle.x = _holesContainer.mouseX + (Math.random()*20-10);
circle.y = _holesContainer.mouseY + (Math.random()*20-10);
_holesContainer.addChild(circle);
}
}
}
Check out http://f6design.com/journal/2009/05/24/erase-an-image-using-your-mouse-in-as3/
Grundsätzlich müssen Sie die Verwendung des Löschmischmodus machen: http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/BlendMode.html