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

    Resize di un SWF esterno

    Ciao a tutti!

    Ho un problema, carico dinamicamente con questo codice:
    codice:
    var mLoader:Loader = new Loader(); 			
    var mRequest:URLRequest = new URLRequest("path del file swf"); 
    mLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, this.ClipLoadingCompleted); 			mLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, this.ClipLoadingProgress); 			
    mLoader.load(mRequest); 			
    this.Content.Scene.addChild(mLoader);
    un file swf esterno.

    Se nel file swf esterno è previsto del codice per il resize dinamico del contenuto al resize dello stage,
    il ridimensionamento non funziona e si blocca l'swf "caricatore".

    Se invece lancio l'swf esterno da solo, senza che questo venga caricato esternamente, il file funziona e si ridimensiona correttamente...

    Come mai!?

    Non riesco in nessun modo a capire come mai!

    Grazie mille in anticipo! Ciao!

  2. #2
    Utente di HTML.it L'avatar di Sleter
    Registrato dal
    Aug 2005
    Messaggi
    465
    Ciao

    Il codice che utilizzi, se serve solo a caricare un .swf mi sembra un pò ridondante, inoltre, testato su Flash CS4 oltre che a non caricare il file richiesto mi dà questo errore:

    TypeError: Error #2007: Il valore del parametro listener deve essere diverso da null.
    at flash.events::EventDispatcher/addEventListener()
    at Senzanome_fla::MainTimeline/frame1()

    Prova a sostituire con questo :

    Codice PHP:
    var mLoader:Loader = new Loader();             
    var 
    mRequest:URLRequest = new URLRequest("miofile.swf");                          
    mLoader.load(mRequest);             
    addChild(mLoader); 
    E' sufficente per caricare un .swf ed eseguire correttamente l'eventuale codice al suo interno.
    Ovviamente sia l' .swf "caricatore" che il "caricato" devono essere in AS3.

    ciao

  3. #3
    No guarda, non è ridondante.

    Gli oggetti "Content" e "Scene" sono MovieClip annidati a cui ho dato nomi che mi sarei potuto ricordare, infatti io devo aggiungere l'swf esterno all'interno dell'oggetto di nome "Scene" che si trova all'interno dell'oggetto di nome "Content" posizionato sullo stage.

    Per quello ti dice che il listener deve essere diverso da null, perchè la struttura delle tue movie clips non era uguale alla mia, comunque, non basta eseguire il codice che c'è all'interno dell'altro swf.

    Se per esempio rendo l'swf esterno "resizzabile" da codice in questo modo:
    codice:
    stage.scaleMode = StageScaleMode.NO_SCALE;
    stage.align = StageAlign.TOP_LEFT;
    stage.addEventListener(Event.RESIZE, this.StageResizing);
    La funzione StageResizing non viene eseguita quando effettuo il ridimensionamento dell'swf padre.

    E' qui il problema...

  4. #4
    Utente di HTML.it L'avatar di Sleter
    Registrato dal
    Aug 2005
    Messaggi
    465
    Ciao

    Cerco di capire il problema: Il tuo .swf esterno contiene un codice per il resize (ridimensionamento) degli oggetti contenuti sullo stage in relazione alle dimensioni dello stage stesso.
    Ridimensionando manualmente la finestra del FlashPlayer gli oggetti sullo stage si ingrandiscono o rimpiccioliscono a seconda delle dimensioni dello stage.

    Ho capito bene ?

    Ora, vai a caricate questo .swf (autoRidimensionabile) in un contenitore annidato in un altro contenitore e vorresti ottenere lo stesso effetto di ridimensionamento che vedi ridimensionando manualmente la finestra del FlashPlayer del .swf ?

    Oppure

    Più semplicemente ti basta che l'.swf che vai a caricare si ridimensioni in relazione alle dimensioni del clip contenitore che utilizzi ?

    Se è così, non serve alcun codice per il resize nell'.swf da caricare e basta ridimensionarlo dall' .swf "caricatore" in questo modo:

    Codice PHP:
    var mLoader:Loader = new Loader();             
    var 
    mRequest:URLRequest = new URLRequest("oggetto.swf"); 
    mLoader.load(mRequest);

    mLoader.contentLoaderInfo.addEventListener(Event.COMPLETEridimensionoSWF);         

    function 
    ridimensionoSWF(evento:Event):void{
        
    mLoader.height=contenitore1.contenitore2.height ;
        
    mLoader.width=contenitore1.contenitore2.width ;
        
    contenitore1.contenitore2.addChild(mLoader);

    Se invece quello che ti serve è il ridimensionamento manuale del clip "contenitore" e del suo contenuto, occorre rendere draggabile e ridimensionabile il clip contenitore stesso e quindi un codice che effettui il ridimensionamento del suo contenuto.

    In tal caso, la vedo abbastanza complicata la cosa da realizzare, anche se non impossibile, sicuramente non al mio livello di conoscenza in programmazione AS3.

    ciao

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.