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

    Animazione Flash si arresta in IE e con problemi casuali in altri browser (CS4/AS3)

    Salve,

    mi scuso in anticipo per il lungo post!!

    Ho iniziato a usare Flash CS4 e un po' di AS3.
    Lavoro usualmente su Mac (Leopard 10.5) dove uso Firefox, Opera e Safari.

    Ho creato un'animazione, che ha anche un preloader, e che funziona egregiamente (devo dire un po' lenta anche una volta caricata completamente) sui browser nel Mac.

    L'animazione contiene Classic tweens, Motion tweens e un po' di AS3 per gestire:
    a. semplice rotazione sull'asse x e y seguendo il mouse;
    b. passaggio ad altre scene o parti dell'animazione o altre pagine web.


    Sono quindi passata a testare il filmato su PC (XP Pro), dove ho installato IE8, Firefox, Opera, Safari, Netscape Navigator e Chrome.


    Sul PC il filmato funziona perfettamente in Firefox, Safari, Opera, Netscape e Chrome.

    Ma su IE invece accade quanto segue: si carica lo sfondo del filmato e poi non succede piu' niente, l'animazione resta ferma li'. Ho provato anche su un altro PC, Windows 7 e IE8: identico risultato.


    Ho fatto un po' di ricerche ed ho creato una pagina con il solo filmato, giusto nel dubbio che qualche div, stile o javascript creasse io problema: stesso risultato, funziona dappertutto tranne che su IE.


    Il codice utilizzato per visualizzare il filmato e' il seguente:

    codice:
    <object type="application/x-shockwave-flash" data="/images/testani.swf" height="600" width="1020">
    <param name="movie" value="/images/testani.swf">
    <param name="menu" value="false">
    <param name="quality" value="high">
    <param name="bgcolor" value="#f3f3f3">
    <param name="wmode" value="transparent">
    </object>

    Ho usato lo stesso codice in altri siti senza nessun problema sia con IE o altri browser.
    La differenza primaria e' nell'uso di Flash CS4 e AS3.


    Ho anche provato con questo vecchio tipo di codice (non si sa mai):

    codice:
    <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" width="1020" height="600"><param name="movie" value="/images/testani.swf"><param name="quality" value="high"><param name="bgcolor" value="#f3f3f3"><embed src="/images/testani.swf" quality="high" bgcolor="#f3f3f3" width="1020" height="600" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"></embed></object>
    Ma il risultato e' esattamente lo stesso.


    Quindi, presumo che il problema stia nel file swf stesso.


    Flash CS4 non mi da' nessun errore di compilazione o di altro tipo quando esporto il filmato.


    Per avere una riprova ho tagliato via tutte le scene e animazioni del filmato, lasciando solo una scena con tre livelli, di cui uno con una semplice animazione Classic tweens.

    Il filmato cosi' generato funziona benissimo anche su IE.


    Qualcuno ha qualche idea su quale potrebbe essere il problema?


    Grazie per ogni aiuto!!

  2. #2
    Update.

    A forza di tentare, ho visto che e' la scena di preload a generare il problema.

    Se elimino giusto la scena di preload il filmato funziona anche in IE.

    Il codice utilizzato per il preload e' il seguente:

    codice:
    import flash.events.ProgressEvent;
    function update(e:ProgressEvent):void
    {
    var percent:Number = Math.floor( (e.bytesLoaded*100)/e.bytesTotal );
    if(pLani is MovieClip){
    pLani.gotoAndStop(percent);
    preloaderTXT.text = String(percent) + "%";
    }
    if(percent == 100){
    play();
    }
    }
    loaderInfo.addEventListener(ProgressEvent.PROGRESS, update);
    // Extra test for IE
    var percent:Number = Math.floor( (this.loaderInfo.bytesLoaded*100)/this.loaderInfo.bytesTotal );
    if(percent == 100){
    nextFrame();
    }
    stop();
    Funziona a dovere con gli altri browser.

    C'e' modo di aggirare il problema?

    Grazie mille!

  3. #3
    Update dell'update!!!

    Un minuscolo invisibile commento al codice di preload in uno sperduto sito (in inglese) riporta di un problema proprio con IE e informa che basta aggiungere play(); al primo frame dell'animazione principale.

    Ancora non ho trovato la disposizione giusta per quel play(); ma almeno l'animazione reagisce in IE...

    Usando questo codice
    codice:
    play();
    import flash.events.ProgressEvent;
    function update(e:ProgressEvent):void
    {
    var percent:Number = Math.floor( (e.bytesLoaded*100)/e.bytesTotal );
    if(pLani is MovieClip){
    pLani.gotoAndStop(percent);
    preloaderTXT.text = String(percent) + "%";
    }
    if(percent == 100){
    play();
    }
    }
    loaderInfo.addEventListener(ProgressEvent.PROGRESS, update);
    // Extra test for IE
    var percent:Number = Math.floor( (this.loaderInfo.bytesLoaded*100)/this.loaderInfo.bytesTotal );
    if(percent == 100){
    nextFrame();
    }
    stop();
    Il preloader e l'animazione funzionano solo la prima volta che viene caricato il filmato. Le volte successive si blocca in loop sul loader.


    Ultimo update - Ho aggiunto play(); al primo frame della scena successiva (diciamo la "principale") e IE carica tutto il filmato. Non vedo pero' il preloading (il quale tuttavia continua a funzionare egregiamente negli altri browser).

    Se qualcuno avesse qualche consiglio sarebbe bene accetto.

    Per il momento comunque mi va bene anche cose'.

    Grazie in ogni caso!

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.