Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Visualizzare variabili fuori dalle funzioni....

    Ciao a tutti, prima di tutto complimenti per questo forum.
    Ho un problemino sono un neofita del campo e mi sono imbattuto in un problemino cercando di creare un piccolo controller mp3.

    Ho allegato il file *.as, se potete aiutarmi anche a grandi linee:
    non riesco a far visualizzare l'array chiamato array_titolo fuori dalla funzione in cui si trova, poiche è una funzione che viene eseguita grazie ad un evento.

    Ringraziandovi in anticipo saluti a tutti.

    Raffaele

    Codice Allegato:

    Codice PHP:
    package {
        
    import flash.display.Stage;
        
    import flash.display.MovieClip;
        
    import fl.transitions.*;
        
    import fl.transitions.easing.*;
        
    import flash.events.*;
        
    import flash.net.*;
        
    import flash.media.*;
        
        public class 
    main extends MovieClip {
            
            public var 
    array_titolo:Array = new Array();
            public var 
    array_file:Array = new Array();
            
            public function 
    main (){
                
    gestione_animazione_controller_audio();
                
    funzione_controller_principale();
            }
            public function 
    gestione_animazione_controller_audio(){
                
    //animazione entrata uscita controller audio [APERTA]
                
    controller_audio.onoff_btn2.visible false;
                
    controller_audio.onoff_btn.visible true;
                
                
    controller_audio.onoff_btn.addEventListener(MouseEvent.CLICKvisualizza_controller_audio_on);
                
    controller_audio.onoff_btn2.addEventListener(MouseEvent.CLICKvisualizza_controller_audio_off);
                
                function 
    visualizza_controller_audio_on(Event:MouseEvent){
                    
    trace("OK Controller Visualizzato.......:)");
                    
    animazione_movieclip_tween(controller_audio1252985);
                    
    controller_audio.onoff_btn2.visible true;
                    
    controller_audio.onoff_btn.visible false;
                }
                function 
    visualizza_controller_audio_off(Event:MouseEvent){
                    
    trace("OK Controller Eliminato.......:)");
                    
    animazione_movieclip_tween(controller_audio9851252);
                    
    controller_audio.onoff_btn2.visible false;
                    
    controller_audio.onoff_btn.visible true;
                }
                function 
    animazione_movieclip_tween(mc:MovieClip,inizio:Numberfine:Number){
                    var 
    myTween2:Tween = new Tween(mc,"x",Elastic.easeInOut,inizio,fine,4,true);
                }
                
    //animazione entrata uscita controller audio [CHIUSA]
            
    }
            public function 
    funzione_controller_principale(){
                
    //gestione file xml nel controller audio            
                
    var fileXML:String "../xml/audio.xml";
                var 
    loader_xml:URLLoader = new URLLoader();
                
    loader_xml.load(new URLRequest(fileXML));
                
    loader_xml.addEventListener(Event.COMPLETEcontroller_audio_xml);
                
                function 
    controller_audio_xml(event:Event){
                    var 
    xmlData:XML = new XML();
                    
    xmlData = new XML(event.target.data);
                    
    array_xml_audio(xmlDataarray_titoloarray_file)
                    
    gestione_audio(array_file);
                }
                
    //popolamento array 
                
    function array_xml_audio(playlist:XMLarray1:Array, array2:Array){
                    var 
    playlist_titolo:XMLList playlist.song.title.children(); 
                    var 
    playlist_attributi:XMLList playlist.song.title.attributes ();
                    var 
    playlist_file:XMLList playlist.song.file.children();
                    
                    for(var 
    i:Number 0playlist_titolo.length(); i++){
                        var 
    titolo:XML playlist.song.title[i];
                        var 
    file:XML playlist.song.file[i];
                        
    array1.push(titolo);
                        
    array2.push(file);
                    }    
                }
            }
            public function 
    gestione_audio(fileMP3:Array){
                
    //gestione audio del controller audio
                
    var numero_brano:Number 0;
                var 
    loader_mp3:URLRequest = new URLRequest(fileMP3[numero_brano])
                var 
    channel:SoundChannel = new SoundChannel();
                var 
    sound_mp3Sound = new Sound();
                
                
    sound_mp3.load(loader_mp3);
                
    sound_mp3.addEventListener(Event.COMPLETEgestione_audio);
                
    sound_mp3.addEventListener(IOErrorEvent.IO_ERRORerrore_caricamento);
                
    sound_mp3.addEventListener(ProgressEvent.PROGRESSaudio_caricamento);
                
                function 
    errore_caricamento(event:Event){
                    
    trace("Errore caricamento, controllare percorso del file");
                }
                function 
    audio_caricamento(event:ProgressEvent){
                    
                }
                
                
    //gestione pulsanti del controller audio
                
    function gestione_audio(evt:Event){
                    
    controller_audio.stop_btn.addEventListener(MouseEvent.CLICKstop_audio);
                    
    controller_audio.play_btn.addEventListener(MouseEvent.CLICKascolta_audio);
                    
    controller_audio.rewind_btn.addEventListener(MouseEvent.CLICKindietro_audio);
                    
    controller_audio.forward_btn.addEventListener(MouseEvent.CLICKavanti_audio);
                }
                function 
    ascolta_audio(event:MouseEvent){
                    
    channel sound_mp3.play();
                }
                function 
    stop_audio(event:MouseEvent){
                    
    channel.stop();
                }
                function 
    indietro_audio(event:MouseEvent){

                }
                function 
    avanti_audio(event:MouseEvent){
                
                    
                }
            }
        }


  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Ti consiglio di utilizzare la formattazione per il codice, altrimenti il messaggio diventa illeggibile. Ho modificato il tuo messaggio aggiungendo gli appositi tag e bloccando le "faccine" che confondevano il codice in alcune parti.

    [edit] Già che ci sono rispondo anche alla tua domanda...

    Non puoi portare il contenuto dell'array fuori da quell'evento, poiché si tratta di un evento di caricamento esterno e come tale è definito asincrono. Praticamente la visibilità dei dati che compongono quell'array è visibile solo all'intero della funzione che ha registrato quell'evento e per questo le azioni che lo coinvolgono devono essere scritte all'interno della funzione stessa.

  3. #3
    E quindi dovrei architettare tutto in maniera differente ?
    grazie mille e scusami per il pasticcio del codice.

  4. #4
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    No, puoi benissimo attivare una funzione dentro all'evento, e la funzione la scrivi fuori, dove vuoi.
    Dipende comunque dall'uso che ne devi fare, l'unico consiglio che ti do dopo aver visto meglio il codice è quello di non nidificare le funzioni, più che altro per pulizia del codice.

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.