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

    Passare il nome del movieclip ad una funzione in AS3

    Passo dopo passo...

    Ora avrei bisogno di caricare un file .swf esterno nello stage, scondo la filosofia AS 3.0 e il Display list ho capito che devo usare la classe load per caricare un movieclip e non più loadMovie... così che ho questa necessità

    (ecco delle porzioni di codice)

    codice:
    //listener sul movieClip da cliccare
    a_mc.addEventListener(MouseEvent.CLICK, onClick, false, 0, true);
    .
    .
    .
    //Funzione che fa delle cose
    function onClick(e:MouseEvent):void {
    	var dx:Number = e.target.x - freccia_mc.x;     
    	var dy:Number = e.target.y - freccia_mc.y;     
    	var radians:Number = Math.atan2(dy, dx);     
    	var degrees:Number = (radians * 180 / Math.PI)-14;     
    	TweenLite.to(freccia_mc, 1, {rotation:degrees, ease:Sine.easeOut});
    	TweenMax.to(e.target, 1, {colorMatrixFilter:{colorize:0xff0000, amount:1}});
           //qui devo caricare un file .swf esterno nominato come il nome del movieclip cliccato 
           loadImmagini(nomeFile);
    	trace(e);
    	trace(this);
    	trace(e.target);
    }
    .
    .
    .
    //Funzione che carica il file swf esterno sullo stage...
    function loadImmagini(nomeFile:String) {
    // inizializzo una variabile di tipo stringa che contenga il nome del file da caricare
    var filename:String = nomeFile + ".swf";
    // inizializzo una richiesta url esterna, tramite la classe URLRequest e gli passo il nome del file da caricare
    var request:URLRequest = new URLRequest(filename);
    // inizializzo un'istanza del DisplayObjectContainer, di tipo Loader()
    var loader:Loader = new Loader();
    // inizializzo un'istanza di LoaderInfo per assegnargli i listener corrispondenti alle azioni
    var infoloader:LoaderInfo = loader.contentLoaderInfo;
    // aggancio le azioni ad ogni evento per monitorare il caricamento
    infoloader.addEventListener(Event.COMPLETE, completeHandler);
    infoloader.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
    infoloader.addEventListener(Event.INIT, initHandler);
    infoloader.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
    infoloader.addEventListener(Event.OPEN, openHandler);
    infoloader.addEventListener(ProgressEvent.PROGRESS, progressHandler);
    
    // inizializzo le funzioni corrispondenti agli eventi da verificare per la classe Loader
    function completeHandler(event:Event) {
    	trace("Caricamento completato, è possibile effettuare azioni sul file appena caricato!");
    }
    function httpStatusHandler(event:HTTPStatusEvent) {
    	trace("Ricevuto stato http "+event.status);
    }
    function initHandler(event:Event) {
    	trace("File esterno inizializzato, è adesso possibile richiamare le azioni contenute nel file esterno!");
    }
    function ioErrorHandler(event:IOErrorEvent) {
    	trace("Errore durante il caricamento del file");
    }
    function openHandler(event:Event) {
    	trace("Caricamento inizializzato, attendere il completamento!");
    }
    function progressHandler(event:ProgressEvent) {
    	var percentual:int = (event.bytesLoaded/event.bytesTotal)*100;
    	trace("Caricamento di "+percentual+"%");
    }
    
    // richiamo il metodo Loader.load(request:URLRequest), per iniziare il caricamento esterno
    // e gli passo come parametro, la richiesta url inizializzata in precedenza
    loader.load(request);
    // inserisco il Loader() nella "display list" dello stage corrente
    addChild(loader);
    	
    }
    Come faccio a passare il nome del file .swf esterno, da caricare, alla funzione loadImmagini ?

  2. #2
    Ci sono riuscito... per tutti quelli che hanno problemi simili, potete usare:


    codice:
    var pathFile:String = e.target.name.toString();

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.