Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    2

    Problema con creazione clip dinamici

    Salve ho un problema nella gestione di clip creati dinamicamente, mi spiego:

    Ho creato un clip filmato attivato l'opzione esporta per actioscript, fino qui tutto ok,
    Da codice actionscripts 3.0 quando avviene una condizione ovvero: cerco in un array se il clip esiste altrimenti lo creo e anche questa operazione va a buon fine il clip viene creato e visualizzato nel filmato

    adesso il problema e' che quando la condizione risulta vera, cioe' il clip esiste non riesco ad aggiornare il contenuto di un textField presente all'interno del clip.
    ecco il codice completo:


    Codice PHP:
    //funzione richiamata da pulsante invio
    public function ricevi(messaggio:Stringda:String):void 

    function 
    stripSpaces1(input) {
         var 
    newString "";
     for (var 
    j=0j<input.lengthj++) {
             if (
    input.charAt(j)!=" ") {
                 
    newString += input.charAt(j);
                 }
        } 
     return 
    newString;
    }  


    da2 stripSpaces1(da);
    if(
    condizione che risulta true) {
        if(
    clips_array.length == 0) {
    // invio chiamata funzione che crea nuovo clip e funziona        
    duplica(messaggioda2);

        } else {
            
        for( var 
    l:int 0clips_array.lengthl++) { 
        
    cli clips_array[l];
        
                       if(
    cli == da2) {
             
     
    // quando la condizione risulta vera
    // parte di codice che non va perche' non aggiorna l' area di testo di quel clip
    cli.areaTesto.htmlText +="\n" messaggio" ;

            }
             
        }
         }
    }
    protected function duplica(messaggio:string, da:string):void
            {
                
                
                for(var i:int=0;i < 1;i++)
                {
                    var clip:miaClip =new miaClip();
                                    clip.name = da;
                    addChild(clip);
                    var px:int = 250;
                                    var py:int = 200;
                                    clip.x = px;
                                    clip.y = py;
    // inserisco il clip nell'array
                    clips_array.push(clip.name);
    // in questo caso viene creato il clip e aggiunto il messaggio all'area di testo
    clip.areaTesto.htmlText +="
    \n" + messaggio" ;
    // aggiungo gli eventi di ascolto
                            
    clip.addEventListener(MouseEvent.MOUSE_DOWNchiudi);
                  
                }
            } 

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Ho aggiunto il tag per il codice, così risulta più leggibile.
    Ti consiglio intanto due cose per la scrittura del codice as3, la prima è di non usare funzioni nidificate in altre (stripSpaces1) e la seconda è quella di aggiungere alle funzioni sempre il tipo di elemento da restituire, nel caso di stripSpaces1 dovrebbe restituire una stringa.
    Riguardo al tuo problema specifico, se ho capito in quale punto non ottieni quello che cerchi, è perché tenti di confrontare un MovieClip con una stringa if(cli == da2) e secondo logica non potrebbe mai dare "true".

    Ah poi un'altra cosa, nel codice che hai copiato c'è sempre una " in più dopo la variabile messaggio, non so se è un errore che c'è anche nel tuo codice originale, ma tant'è.

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    2
    Il mio problema è questo:
    ho creato un clip filmato con all'interno un area di testo un campo di input e un pulsante ( tipo finestra pvt delle chat), lo esportato per actionscripts con nome identificatore e fino a qui tutto ok.
    Adesso quando da flash media server arriva una notifica viene invocata una funzione ricevi() che riceve il messaggio e l'utente che lo ha inviato, quindi viene creato un nuovo clip e assegnato il nome istanza con il nome di chi a inviato il messaggio tipo ( clip.name = da ) fino qui tutto funziona bene......il problema è che quando lo stesso utente manda un nuovo messaggio io devo intercettare il clip con quel nome e se esiste appendo il testo all'area gia presente ( come in una chat privata ) altrimenti creo nuovo clip con nuovo nome del utente.

    Cmq grazie per la risposta ...cerchero di eliminare le funzioni nidificate per ottimizzare il codice ma non riesco a venire a capo di questo problema con as3.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.