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

    variabili e classi in ActionScript 3.0

    Salve a tutti,
    probabilmente è domanda è banale, ma io non riesco proprio a venirne a capo....
    Ho questo file URLLoaderExample.as

    codice:
    package {
    	import flash.display.Sprite;
    	import flash.events.*;
    	import flash.net.*;
    
    	public class URLLoaderExample extends Sprite {
    
    		public static var loader:URLLoader = new URLLoader();
    		loader.dataFormat=URLLoaderDataFormat.VARIABLES;
    
    		public function URLLoaderExample(url_request) {
    			configureListeners(loader);
    			var request:URLRequest = new URLRequest(url_request);
    			try {
    				loader.load(request);
    			} catch (error:Error) {
    				trace("Unable to load requested document.");
    			}
    		}
    		private function configureListeners(dispatcher:IEventDispatcher):void {
    			dispatcher.addEventListener(Event.COMPLETE, completeHandler);
    			dispatcher.addEventListener(Event.OPEN, openHandler);
    			dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler);
    			dispatcher.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
    			dispatcher.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
    			dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
    		}
    
    		private function completeHandler(event:Event):void {
    			var loader:URLLoader = URLLoader(event.target);
    			var variables:URLVariables = new URLVariables(loader.data);
    
    		}
    
    		private function openHandler(event:Event):void {
    		}
    
    		private function progressHandler(event:ProgressEvent):void {
    		}
    
    		private function securityErrorHandler(event:SecurityErrorEvent):void {
    		}
    
    		private function httpStatusHandler(event:HTTPStatusEvent):void {
    		}
    
    		private function ioErrorHandler(event:IOErrorEvent):void {
    		}
    	}
    }
    e un file .fla dove nel primo fotogramma ho inserito il seguente codice:

    codice:
    var test = new URLLoaderExample("mio_script.php");
    Il problema è in private function completeHandler.
    In variables mi salvo i dati che mi vengono passati da uno script php.
    Ora, come faccio a salvare variables in una variabile del file .fla? Cioè una cosa del tipo (ovviamente per esempio):

    codice:
    var test = new URLLoaderExample("mio_script.php");
    var mia_var = variables;
    Mi serve perchè devo utilizzare quei dati sul file .fla, ma non ci riesco...
    Devo intercettare il Listener? Creare una nuova classe?
    Sono confusa e anche un po' disperata...

    Grazie in anticipo per l'aiuto

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    se non sbaglio il codice che hai proposto è un esempio tratto dalla guida interna di flash
    se vuoi utilizzarla in quella maniera, ti tocca aggiungere una variabile pubblica come funzione nella classe, e richiamarla all'interno del metodo privato completeHandler

    Codice PHP:
    //...omissis
    public static var loader:URLLoader = new URLLoader();
    loader.dataFormat=URLLoaderDataFormat.VARIABLES;

    // qui inserisci la dichiarazione
    public var onComplete:Function;

    public function 
    URLLoaderExample(url_request//...omissis

    private function completeHandler(event:Event):void {
        var 
    loader:URLLoader URLLoader(event.target);
        var 
    variables:URLVariables = new URLVariables(loader.data);
        
    onComplete(variables); // qui la usi nella classe
    }
    //...omissis 
    e nel fla la utilizzi così

    Codice PHP:
    var test = new URLLoaderExample("http://127.0.0.1/Desktop/script.php");
    test.onComplete = function(v:URLVariables) {
    trace(v); // v è l'oggetto che contiene tutte le variabile restituite dal file PHP
    }; 

  3. #3
    Grazie per la risposta, ma ora ho un dubbio...
    Se nel .fla scrivo

    codice:
    var test = new URLLoaderExample("http://127.0.0.1/Desktop/script.php");
    test.onComplete = function(v:URLVariables) {
    trace(v); // v è l'oggetto che contiene tutte le variabile restituite dal file PHP
    };
    come porto "v" fuori dalla funzione?
    se faccio

    codice:
    var test = new URLLoaderExample("http://127.0.0.1/Desktop/script.php");
    test.onComplete = function(v:URLVariables) {
    var mia_var = v;
    };
    trace(mia_var);
    logicamente non va....
    Come posso fare?

  4. #4
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    se vuoi averla indipendente, devi sfruttare i frame, cioè nel primo frame avrai

    Codice PHP:
    stop();
    var 
    mia_var:URLVariables;
    var 
    test = new URLLoaderExample("http://127.0.0.1/Desktop/script.php");
    test.onComplete = function(v:URLVariables) {
    mia_var v;
    this.gotoAndStop(2);
    }; 
    e nel secondo potrai sfruttare la variabile mia_var a tuo piacimento, sulla timeline, senza dover stare dentro alla funzione

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.