• User

    as3 - rimuovere un' istanza

    Salve , sto diventando matto per cercare di rimuovere un' istanza da actionscript 3 per flash cs6.

    La logica e' che quando schiaccio un bottone (button1) mi carica un' istanza(c1) , e fin qui nessun problema

    button1.addEventListener(MouseEvent.CLICK, fl_MouseClickHandler_6);

    function fl_MouseClickHandler_6(event:MouseEvent):void
    {
    var fl_MyInstance_2:c1 = new c1();
    addChild(fl_MyInstance_2);
    }

    ora , quando schiaccio il pulsante2 (button2) mi deve scaricare l'istanza c1 e caricare l'stanza c2.

    Chi e' cosi' gentile da aiutarmi ???
    buona giornata


  • Super User

    Ciao benvenuto sul Forum GT, prova così:

    
    var fl_MyInstance_1:c1 = new c1();
    var fl_MyInstance_2:c2 = new c2();
    
    button1.addEventListener(MouseEvent.CLICK, fl_MouseClickHandler_1);
    
    function fl_MouseClickHandler_1(event:MouseEvent):void
    {
    if(this.contains(fl_MyInstance_2))  removeChild(fl_MyInstance_2);
    addChild(fl_MyInstance_1);
    }
    button2.addEventListener(MouseEvent.CLICK, fl_MouseClickHandler_2);
    
    function fl_MouseClickHandler_2(event:MouseEvent):void
    {
    if(this.contains(fl_MyInstance_1))  removeChild(fl_MyInstance_1);  
    addChild(fl_MyInstance_2);
    fl_MyInstance_2.x=100
    }
    
    

  • User

    grazie mille , il codice funziona , visto sche sei bravissimo , ti vorei chiedere se e'
    possibile salvare esempio una distinta con dei nomi che io ho inserito , su di un file pippo
    in modo che io ogni volta che apro il file pippo ho già la distinta compilata ,mentre se la voglio vuota
    apro il file pappa........spero che mi hai capito.

    grazie


  • Super User

    Ho visto la tua domanda su un altro Forum, Si può salvare in un file txt o un database mysql o in un file xml, ma a te serve per un app Android quindi credo di no.


  • User

    ciao Nathan , e se avessi 3 variabili con tre pulsanti ? sto diventando matto per risolvere questo problema.....


  • User

    Ho provato con sto codice , ma mi da il seguente errore

    ArgumentError: Error #2025: The supplied DisplayObject must be a child of the caller.
    at flash.display::DisplayObjectContainer/removeChild()
    at istanza1_fla::MainTimeline/fl_MouseClickHandler_3()[istanza1_fla.MainTimeline::frame1:31]

    var fl_MyInstance_1:quadro = new quadro();
    var fl_MyInstance_2:cerchio = new cerchio();
    var fl_MyInstance_3:triangolo = new triangolo();

    button1.addEventListener(MouseEvent.CLICK, fl_MouseClickHandler_1);

    function fl_MouseClickHandler_1(event:MouseEvent):void
    {
    if(this.contains(fl_MyInstance_2),(fl_MyInstance_3))
    removeChild(fl_MyInstance_2),(fl_MyInstance_3);
    addChild(fl_MyInstance_1);
    fl_MyInstance_1.x=300
    fl_MyInstance_1.y=300
    }
    button2.addEventListener(MouseEvent.CLICK, fl_MouseClickHandler_2);

    function fl_MouseClickHandler_2(event:MouseEvent):void
    {
    if(this.contains(fl_MyInstance_1),(fl_MyInstance_3))
    removeChild(fl_MyInstance_1),(fl_MyInstance_3);
    addChild(fl_MyInstance_2);
    fl_MyInstance_2.x=300
    }

    button3.addEventListener(MouseEvent.CLICK, fl_MouseClickHandler_3);

    function fl_MouseClickHandler_3(event:MouseEvent):void
    {
    if(this.contains(fl_MyInstance_1),(fl_MyInstance_2))
    removeChild(fl_MyInstance_1),(fl_MyInstance_2);
    addChild(fl_MyInstance_3);
    fl_MyInstance_3.x=300
    }


  • Super User

    Cosa vuoi ottenere? carichi un movieclip e scarichi quello presente?
    Non puoi dire a flash di rimuovere l'istanza se non è stata prima caricata, ti crei una funzione deputata a rimuovere le istanze "function rimuovi_istanze()" poi ti avvali della condizione if e del metodo contains. cioè se lo stage contiene questa istanza rimuovila, infine richiami la funzione da ogni pulsante.

    
    var fl_MyInstance_1:quadro = new quadro();
    var fl_MyInstance_2:cerchio = new cerchio();
    var fl_MyInstance_3:triangolo = new triangolo();
    
    button1.addEventListener(MouseEvent.CLICK, fl_MouseClickHandler_1);
    
    function fl_MouseClickHandler_1(event:MouseEvent):void
    {
        if (this.contains(fl_MyInstance_2),(fl_MyInstance_3 ))
        {
            rimuovi_istanza();
        }
        addChild(fl_MyInstance_1);
        fl_MyInstance_1.x = 300;
        fl_MyInstance_1.y = 300;
    }
    button2.addEventListener(MouseEvent.CLICK, fl_MouseClickHandler_2);
    
    function fl_MouseClickHandler_2(event:MouseEvent):void
    {
        if (this.contains(fl_MyInstance_1),(fl_MyInstance_3 ))
        {
            rimuovi_istanza();
        }
        addChild(fl_MyInstance_2);
        fl_MyInstance_2.x = 300;
    }
    
    button3.addEventListener(MouseEvent.CLICK, fl_MouseClickHandler_3);
    
    function fl_MouseClickHandler_3(event:MouseEvent):void
    {
        if (this.contains(fl_MyInstance_1),(fl_MyInstance_2 ))
        {
            rimuovi_istanza();
        }
        addChild(fl_MyInstance_3);
        fl_MyInstance_3.x = 300;
    }
    function rimuovi_istanza()
    {
        if (this.contains(fl_MyInstance_1))
        {
            removeChild(fl_MyInstance_1);
        }
        else if (this.contains(fl_MyInstance_2))
        {
            removeChild(fl_MyInstance_2);
        }
        else if (this.contains(fl_MyInstance_3))
        {
            removeChild(fl_MyInstance_3);
        }
    }
    
    

  • User

    Grazie Nathan e scusa per il disturbo , senti l' ultima cosa poi ti lascio in pace , se io volessi caricare un testo di imput
    al tocco del pulsante in una posizione x , e finito di inserire il testo spostarlo in una posizione x1 , diciamo , secondo
    te e' fattibile ????


  • Super User

    Nessun disturbo, se non volessi non sarei quà, non ho capito bene la domanda, il testo di input lo si scrive con la tastiera, forse intendi un testo dinamico?
    PS, quando cambi argomento apri una nuova discussione con un titolo appropriato per favore, serve anche per gli altri utenti che dovesero fare una ricerca con un motore.


  • User

    esattamente , il testo lo devo scrivere con la tastiera al tocco di un pulsante e lo voglio posizionare in alto........quanto ho finito
    di scrivere , tutto il testo che ho scritto deve automaticamente scorrere in basso....


  • User

    per intenderci simile al layaout di facebook , quando esce la tastiera , il testo devo scorrere in alto , e poi dopo
    finito di inserire il testo , deve tornare in basso


  • Super User

    Ancora non ci sono, se tu scrivi in un campo di testo input quando arrivi sul fondo man mano che continui a scrivere il testo scorre automaticamente in alto.


  • User

    @Nhatan said:

    Ancora non ci sono, se tu scrivi in un campo di testo input quando arrivi sul fondo man mano che continui a scrivere il testo scorre automaticamente in alto.
    scusa ma non mi spigo bene.....se io esporto la mia app. su android , ed ho un campo di testo in fondo alla pagina , quando tocco e si apre la tastiera , mi coprira' il mio testo di imput , e dovrei inserire le parole alla cieca...


  • Super User

    Ah ecco non devi spostare il testo ma proprio il campo, gli dai un nome istanza e imposti le coordinate che vuoi, solo che non ho idea come potresti fare a spostare il campo alla fine della digitazione, cioè hai bisogno di qualcosa che scateni l'evento, un pulsante o anche click su un determinato tasto, tieni presente che non so come reagisce actionscript alla tastiera android.