在数组movieclip中绘制线条不能正常工作as3

时间:2014-12-11 12:04:12

标签: arrays actionscript-3 flash

您好如何在图像数组中绘制一条线下面是我的代码谢谢我需要做的所有事情如何?

package 
{
    import flash.display.MovieClip;
    import fl.transitions.Tween;
    import flash.events.Event;
    import flash.events.MouseEvent;
    import flash.display.Sprite;
    import flash.geom.ColorTransform;
    import flash.events.MouseEvent;
    import flash.events.Event;
    import flash.utils.ByteArray;
    import flash.display.DisplayObject;

    public class Main extends MovieClip
    {
        public var earth_btn:Earth_btn=new Earth_btn();
        public var mercury_btn:Mercury_btn=new Mercury_btn();
        public var venus_btn:Venus_btn=new Venus_btn();
        public var buttons = new Array(mercury_btn,venus_btn,earth_btn);
        public var teddy_mc1:Teddy_mc1 = new Teddy_mc1();
        public var teddy_mc2:Teddy_mc2 = new Teddy_mc2();
        public var teddy_mc3:Teddy_mc3 = new Teddy_mc3();
        public var teddy:Array = new Array(teddy_mc3,teddy_mc2,teddy_mc1);
        public var venus:Sprite=new Sprite();
        public var btn:MovieClip=new MovieClip();
        public var palette:palette_mc=new palette_mc();
        public var pal_color:ColorTransform;
        public var colors:Array = new Array(0xFF0000,0x00FF00,0x0000FF,0xFF0000,0x00FF00);
        public var current_color:int = 0;
        public var s:int = 0;

        public function on_palette_click(e:MouseEvent):void
        {
            var palette_clicked:palette_mc = e.currentTarget as palette_mc;
            current_color = palette_clicked.ind;
        }

        public function on_teddy_click(e:MouseEvent):void
        {
            var f:int = teddy.length;
            for (s=0; s<f; s++)
            {
                teddy[s].buttonMode = true;
                for (var i:int = 0; i < teddy[s].numChildren; i++)
                {
                    if (teddy[s].getChildAt(i).hitTestPoint(mouseX,mouseY,true))
                    {
                        pal_color = teddy[s].getChildAt(i).transform.colorTransform;
                        pal_color.color = colors[current_color];
                        teddy[s].getChildAt(i).transform.colorTransform = pal_color;
                        break;
                    }
                }
            }
        }
        public function Main()
        {
            addChild(venus);
            for (s =0; s<teddy.length; s++)
            {
                teddy[s].x = 200;
                teddy[s].y = 300;
            }
            for (var i:int=0; i<5; i++)
            {
                palette = new palette_mc();
                pal_color = palette.transform.colorTransform;
                pal_color.color = colors[i];
                palette.transform.colorTransform = pal_color;
                palette.ind = i;
                palette.x = 600 + i;
                palette.y = 0 + i * 150;
                addChild(palette);
            }
            var l:int = buttons.length;
            for (var a=0; a<l; a++)
            {
                buttons[a].buttonMode = true;
                buttons[a].addEventListener(MouseEvent.MOUSE_OVER, onMouseOver);
                buttons[a].addEventListener(MouseEvent.MOUSE_OUT, onMouseOut);
                buttons[a].addEventListener(MouseEvent.CLICK, clickHandler);
                btn.addChild(buttons[a]);
                buttons[a].x = 150 + a * 100;
                buttons[a].y = 600 + a;
                addChild(btn);
            }
            function onMouseOver(event:MouseEvent):void
            {
                scaleAnimation(event);
            }
            function onMouseOut(event:MouseEvent):void
            {
                scaleAnimation2(event);
            }
            function scaleAnimation(e:Event):void
            {
                this.toMouseX = new Tween(e.target,"scaleX",Regular.easeIn,1.1,1.2,.1,true);
                this.toMouseY = new Tween(e.target,"scaleY",Regular.easeIn,1.1,1.2,.1,true);
            }
            function scaleAnimation2(e:Event):void
            {
                this.toMouseX = new Tween(e.target,"scaleX",Regular.easeIn,1.0,1.0,.1,true);
                this.toMouseY = new Tween(e.target,"scaleY",Regular.easeIn,1.0,1.0,.1,true);
            }
            function clickHandler(event:MouseEvent):void
            {
                switch (event.currentTarget)
                {
                    case buttons[0] :
                        venus.addChild(teddy[0]);
                        if (teddy[1].stage)
                        {
                            teddy[1].parent.removeChild(teddy[1]);
                        }
                        else
                        {
                            trace("teddy[1] isn't in display list");
                        }
                        if (teddy[2].stage)
                        {
                            teddy[2].parent.removeChild(teddy[2]);
                        }
                        else
                        {
                            trace("teddy[2] isn't in display list");
                        }
                        teddy[0].addEventListener(MouseEvent.CLICK,on_teddy_click);
                        break;
                    case buttons[1] :
                        venus.addChild( teddy[1]);
                        trace("teddy[1]");
                        teddy[1].addEventListener(MouseEvent.CLICK,on_teddy_click);
                        if (teddy[0].stage)
                        {
                            teddy[0].parent.removeChild(teddy[0]);
                        }
                        else
                        {
                            trace("teddy[0] isn't in display list");
                        }
                        if (teddy[2].stage)
                        {
                            teddy[2].parent.removeChild(teddy[2]);
                        }
                        else
                        {
                            trace("teddy[2] isn't in display list");
                        }
                        break;
                    case buttons[2] :
                        venus.addChild( teddy[2]);
                        trace("teddy[2]");
                        teddy[2].addEventListener(MouseEvent.CLICK,on_teddy_click);
                        if (teddy[1].stage)
                        {
                            teddy[1].parent.removeChild(teddy[1]);
                        }
                        else
                        {
                            trace("teddy[1] isn't in display list");
                        }
                        if (teddy[0].stage)
                        {
                            teddy[0].parent.removeChild(teddy[0]);
                            teddy[0].transform.colorTransform = new ColorTransform();
                        }
                        else
                        {
                            trace("teddy[0] isn't in display list");
                        }
                        break;
                }
            }
            var drawingLine:MovieClip = new MovieClip();
            teddy[s].addChild(drawingLine , 0);
            teddy[s].addEventListener(MouseEvent.MOUSE_DOWN, MouseDown);
            teddy[s].addEventListener(MouseEvent.MOUSE_UP, MouseUp);
            function MouseDown(event:MouseEvent):void
            {
                drawingLine.graphics.lineStyle(3);
                drawingLine.graphics.moveTo(mouseX,mouseY);
                teddy[s].addEventListener(MouseEvent.MOUSE_MOVE,MouseMove);
            }
            function MouseMove(event:MouseEvent):void
            {
                drawingLine.graphics.lineTo(mouseX,mouseY);
            }
            function MouseUp(event:MouseEvent):void
            {
                teddy[s].removeEventListener(MouseEvent.MOUSE_MOVE,MouseMove);
            }
            palette.addEventListener(MouseEvent.CLICK,on_palette_click);
        }
    }
}

0 个答案:

没有答案