Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 动作脚本3,flash:动态擦除区域?_Actionscript 3_Flash_Animation_Masking - Fatal编程技术网

Actionscript 3 动作脚本3,flash:动态擦除区域?

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

长话短说,我为它做了一个形象。 我是actionscripting的初学者,发现仅仅制作动画是不够的

我努力实现的目标: 退房

基本上,您必须使用擦除混合模式:

签出


基本上,您必须使用擦除混合模式:

您可以使用一个简单的掩码来实现这一点。下面是一个工作示例(使用鼠标左键,但我不认为右键适用于此):


您可以使用一个简单的遮罩来实现这一点。下面是一个工作示例(使用鼠标左键,但我不认为右键适用于此):

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 );
        }
    }
}