• User

    annullare a ritroso addchild

    salve a tutti,
    sullo stage ho un pulsante matita che mi permette di fare dei disegni sullo stage.
    avrei la necessità di un tasto annulla che ogni volta che viene cliccato annulli a ritroso l'ultimo "tratto di matita" fatto sullo stage.
    però con il comando addChild e removeChild non ne vengo a capo.
    qualcuno ha una soluzione che potrei provare?
    allego il codice che uso per scrivere con la matita:

    [PHP]

    area.addEventListener(MouseEvent.MOUSE_DOWN, startPencilTool2);
    area.addEventListener(MouseEvent.MOUSE_UP, stopPencilTool2);

    private function startPencilTool2(e:MouseEvent):void
    {

            this.addChild(pencilDraw_rettangolo1); 
            pencilDraw_rettangolo1.graphics.moveTo(mouseX, mouseY); 
            pencilDraw_rettangolo1.graphics.lineStyle(2,activeColor3); 
            pencilDraw_rettangolo1.alpha=1; 
            area.addEventListener(MouseEvent.MOUSE_MOVE, drawPencilTool2); 
             
             
        } 
    
        private function drawPencilTool2(e:MouseEvent):void 
        { 
             
                 
                pencilDraw_rettangolo1.graphics.lineTo(mouseX, mouseY) 
             
             
        } 
    
    private function stopPencilTool2(e:MouseEvent):void 
        { 
            area.removeEventListener(MouseEvent.MOUSE_MOVE,drawPencilTool2); 
             
        }  
    

    [/PHP]

    ho pensato anche di scrivere dinamicamente il nome dell'istanza Shape pencilDraw_rettangolo1 ma come posso fare? nel senso, implementare un indice e al posto di 1 mettere l'indice i implementato così volta per volta aggiungo un pencilDraw_rettangolo diverso (pencilDraw_rettangolo1,pencilDraw_rettangolo2,pen cilDraw_rettangolo3 etc...) e man mando andando a ritroso rimuovo dallo stage un pencilDraw_rettangolo diverso.


  • Super User

    Ciao, credo che con removeChild sei fuori strada, non so come funziona il tuo filmato, ma quell'addChild non mostra a video il disegno, costruito tramite il metodo graphics.lineTo. Non so come fare per cancellare con un click un tratto ma potresti realizzare una specie di gomma cambiando il colore del tratto nel colore di sfondo.