Flash Gallery | Flash Templates | Flash Menu | Flash Design | Flash Audio & Video

Video Corsi Actionscript 3.0


+ Reply to Thread
Page 1 of 2
1 2 LastLast
Results 1 to 10 of 13

Thread: rimuovere elementi dallo schermo

  1. #1
    Member Settled In flescix is on a distinguished road
    Join Date
    Sep 2008
    Posts
    39
    Rep Power
    0

    rimuovere elementi dallo schermo

    amazing Flash templates
    ciao
    stavo provando a fare un piccolo esercizio in as3, per imparare a far visualizzare elementi sullo schermo in maniera random. Bene, ci sono riuscito!

    In pratica, sono dei simpatici champignon che compaiono causalmente su un prato (da me disegnato in 2 minuti con Illustrator).
    Poi, ho inziato a giocare un pò col codice e ho implementato una funzione che mi consente di eliminare l'oggetto visualizzato (il fungo) al click. Il problema, però, è che riesco ad eliminare solo l'utlimo elemento visualizzato, mentre su tutti quelli visualizzati precedentemente e non posso più cliccare.

    Come posso risolvere questo problema? Stu studiacchiando DisplayObject e DisplyObjetContainer, sono sulla buona strada?
    Ecco, magari, prima di passare il codice, se qualcuno mi dice la sua magari riesco a risolvermelo da solo senza infastidire voi...:-)

  2. #2
    Member Settled In flescix is on a distinguished road
    Join Date
    Sep 2008
    Posts
    39
    Rep Power
    0

    Re: rimuovere elementi dallo schermo

    Se clicco su uno dei funghetti che non siano l'ultimo visualizzato mi dà il seguente errore:


    ArgumentError: Error #2025: Il valore fornito per DisplayObject deve essere un elemento secondario del chiamante.
    at flash.display::DisplayObjectContainer/removeChild()
    at prato_fla::MainTimeline/clicked()


    Coa vuol dire l' Error #2025?

  3. #3
    Member Settled In flescix is on a distinguished road
    Join Date
    Sep 2008
    Posts
    39
    Rep Power
    0

    Re: rimuovere elementi dallo schermo

    Continuo la mia lotta contro i funghetti...
    per rimuovere delle istanze mi è stato consigliato di creare una condizione per controllare se l'event.target corrisponda all'oggetto.
    Sto provando a scrivere un codice del genere (ovviamente sbagliato):

    if (event.target==mc_funghetto){
    clicked();
    }

    dove clicked() è la funzione che rimuove gli oggetto dallo schermo.

    1120: Access of undefined property event. (sulla condizione if)
    1136: Incorrect number of arguments. Expected 1. (sulla funzione clicked() )


    Suggerimenti?

  4. #4
    Member Flash Addict domdurakov is on a distinguished road
    Join Date
    Sep 2009
    Posts
    72
    Rep Power
    1

    Re: rimuovere elementi dallo schermo

    ho il tuo stesso problema... sei riuscito a risolvere??

  5. #5
    Moderator Moving My Stuff To The FlepStudio OrientExpress is on a distinguished road OrientExpress's Avatar
    Join Date
    Aug 2009
    Posts
    1,279
    Rep Power
    2

    Re: rimuovere elementi dallo schermo

    Ci fate vedere un po di codice così possiamo aiutarvi.

  6. #6
    Member Flash Addict domdurakov is on a distinguished road
    Join Date
    Sep 2009
    Posts
    72
    Rep Power
    1

    Re: rimuovere elementi dallo schermo

    ciao!
    allora:
    1. al click sul bottone tramite addChild metto sullo stage una serie di quadratini (tanti quanti sono gli elementi dell'Array).

    2.Al click su un altro bottone tutti i quadatini aggiunti dovrebbero prima scomparire per lasciare posto ai nuovi quadratini..

    cerco di postarti un po' di codice anche se viste tutte le prove che sto facendo sarà un po' disordinato...

    chiamo la funzione rimuovi
    HTML Code:
    menuC.addEventListener(MouseEvent.CLICK, rimuovi);
    funzione rimuovi... dovrebbe svuotare lo schermo verificando prima se lo schermo è riempito (prima sennò mi dava errore), ho per questo impostato una variabile true o false.

    HTML Code:
    public function rimuovi(event:MouseEvent):void{
                CategoriaClick=event.currentTarget.id;
                if(prova==true){
                    for(var i:int=0; i<ServiziArray.length;i++){
                        removeChild(servizi);
                    }
                }            
                onClickCategoria();
            }

    e infine la funzione che popola di quadratini lo schermo

    HTML Code:
    public function onClickCategoria():void{            
                prova=true;                    
                var lunghezza=ServiziArray[CategoriaClick].length();      
                                                
                for(var i:Number=0; i<lunghezza; i++){                    
                    ServiziArrayClick.push(ServiziArray[CategoriaClick][i]);
                    var servizi:ServiziLabel= new ServiziLabel();
                    servizi.id=i;
                    servizi.y=stage.stageHeight-100;
                    servizi.x=20+(servizi.width*i)+2*i;
                    addChild(servizi);
                }
                posTesto=25+(servizi.width*i)+2*i;
            }

    scusa il casino, sicuramente ci sono un sacco di cose superflue...

  7. #7
    Moderator Moving My Stuff To The FlepStudio OrientExpress is on a distinguished road OrientExpress's Avatar
    Join Date
    Aug 2009
    Posts
    1,279
    Rep Power
    2

    Re: rimuovere elementi dallo schermo

    Io farei così:
    creo un Array che si popolerà di quadratini al momento del click del bottone.
    QUando li devo rimuovere mi basta un ciclo che naviga tale array e rimuovo tutti i quadratini.
    Una volta rimossi, gli dico mio_array=null; e mio_array=new Array in modo che al prossimo click del bottone andrai a ripopolarlo e sarà un nuovo array.

  8. #8
    Member Flash Addict domdurakov is on a distinguished road
    Join Date
    Sep 2009
    Posts
    72
    Rep Power
    1

    Re: rimuovere elementi dallo schermo

    sto provando giusto questa strada ma il problema è che mi da questo errore sul removeChild(servizi);

    ArgumentError: Error #2025: Il valore fornito per DisplayObject deve essere un elemento secondario del chiamante.

    che cosa vuol dire??

    il mio codice:

    HTML Code:
    public function rimuovi(event:MouseEvent):void{
                CategoriaClick=event.currentTarget.id;
                var lunghezza=ServiziArray[CategoriaClick].length();
                          
                for(var i:Number=0; i<ServiziArrayBottoni.length; i++){                
                    removeChild(servizi);
                }
                
                onClickCategoria();
            }
            
            public function onClickCategoria():void{            
                
                var lunghezza=ServiziArray[CategoriaClick].length();                
                                                
                for(var i:Number=0; i<lunghezza; i++){                    
                    ServiziArrayClick.push(ServiziArray[CategoriaClick][i]);
                                    
                    var servizi:ServiziLabel= new ServiziLabel();
                    servizi.id=i;
                    servizi.y=stage.stageHeight-100;
                    servizi.x=20+(servizi.width*i)+2*i;
                    addChild(servizi);
                    ServiziArrayBottoni.push(servizi);
                    servizi.addEventListener(MouseEvent.MOUSE_OVER, RollOverServizi);
                    servizi.addEventListener(MouseEvent.MOUSE_OUT, RollOutServizi);
                    servizi.addEventListener(MouseEvent.CLICK, ClickServizi);
                }
                posTesto=25+(servizi.width*i)+2*i;
            }

    dove sbaglio???
    grazie dell'aiuto!!

  9. #9
    Moderator Moving My Stuff To The FlepStudio OrientExpress is on a distinguished road OrientExpress's Avatar
    Join Date
    Aug 2009
    Posts
    1,279
    Rep Power
    2

    Re: rimuovere elementi dallo schermo

    Forse dovrebbe essere così
    Code:
    public function rimuovi(event:MouseEvent):void{
                CategoriaClick=event.currentTarget.id;
                var lunghezza=ServiziArray[CategoriaClick].length();
                          
                for(var i:Number=0; i < ServiziArrayBottoni.length; i++){                
                    removeChild(ServiziArray[CategoriaClick][i]);
                }
                
                onClickCategoria();
            }

  10. #10
    Member Flash Addict domdurakov is on a distinguished road
    Join Date
    Sep 2009
    Posts
    72
    Rep Power
    1

    Re: rimuovere elementi dallo schermo

    mmm così non funziona... funziona in parte così

    HTML Code:
    public function rimuovi(event:MouseEvent):void{
                CategoriaClick=event.currentTarget.id;
                var lunghezza=ServiziArray[CategoriaClick].length();
                
                   for(var i:Number=0; i < ServiziArrayBottoni.length; i++){ 
                    trace("array"+ServiziArrayBottoni[i])
                       removeChild(ServiziArrayBottoni[i]);
               }            
                onClickCategoria();
                     
            }
    funziona in parte perchè va per i primi due click e poi mi da un errore di questo tipo
    ArgumentError: Error #2025: Il valore fornito per DisplayObject deve essere un elemento secondario del chiamante.

    mi suggerisci di tentare altre strade?

+ Reply to Thread
Page 1 of 2
1 2 LastLast

Similar Threads

  1. Visualizzazione a schermo intero
    By xanjax in forum Flash Italiano
    Replies: 0
    Last Post: 09-02-10, 16:32
  2. come salvare un file swf dallo stesso swf
    By pier8660 in forum Flash CS4
    Replies: 2
    Last Post: 10-02-09, 06:18
  3. lettura di più xml dallo stesso filmato
    By jaimz in forum Flash Italiano
    Replies: 0
    Last Post: 10-11-08, 15:58
  4. Visualizzazione video a schermo intero
    By Eugene in forum Flash Italiano
    Replies: 2
    Last Post: 03-06-08, 12:21
  5. Aprire un sito flash a tutto schermo
    By gabestorm in forum Flash Italiano
    Replies: 4
    Last Post: 18-01-08, 07:36

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts

Search Engine Optimization by vBSEO