Actionscript 3 动作脚本3,flash:动态擦除区域?
长话短说,我为它做了一个形象。 我是actionscripting的初学者,发现仅仅制作动画是不够的 我努力实现的目标: 退房 基本上,您必须使用擦除混合模式:签出Actionscript 3 动作脚本3,flash:动态擦除区域?,actionscript-3,flash,animation,masking,Actionscript 3,Flash,Animation,Masking,长话短说,我为它做了一个形象。 我是actionscripting的初学者,发现仅仅制作动画是不够的 我努力实现的目标: 退房 基本上,您必须使用擦除混合模式:签出 基本上,您必须使用擦除混合模式:您可以使用一个简单的掩码来实现这一点。下面是一个工作示例(使用鼠标左键,但我不认为右键适用于此): 您可以使用一个简单的遮罩来实现这一点。下面是一个工作示例(使用鼠标左键,但我不认为右键适用于此): package examples { import flash.display.Sprit
基本上,您必须使用擦除混合模式:您可以使用一个简单的掩码来实现这一点。下面是一个工作示例(使用鼠标左键,但我不认为右键适用于此):
您可以使用一个简单的遮罩来实现这一点。下面是一个工作示例(使用鼠标左键,但我不认为右键适用于此):
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 );
}
}
}