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

    precaricare swf senza visualizzarli

    salve maestri!
    i miei quesiti speranzosi si rivolgono sempre a voi!
    ho un problema con il precaricamento di swf esterni che voglio che mi si carichino mentre l'utente naviga per il sito in modo che poi non ci sia ulteriore tempo da aspettare per aprirli...
    il problema è che me li precaricarica (in un mc vuoto) ma me li visualizza subito pur settando su visible=false il mc contenitore!!
    posto il mio codice:

    loadMovie(tipolog1+"1.swf", cont_mc1);
    onEnterFrame=function(){
    cont_mc1._visible=false;
    //delete onEnterFrame;
    }

    */cosi da solo funziona (ho ridotto "delete onenterframe" a nota e l'ho messo al click su un pulsante esterno-che serve poi a fare l'unload- che setta inoltre cont_mc1._visible=true).
    se metto gli altri due codici relativi agli altri due swf da precaricare in altri 2 movieclip (cont_mc2 e cont_mc3):

    loadMovie(tipolog2+"2.swf", cont_mc2);
    onEnterFrame=function(){
    cont_mc2._visible=false;
    //delete onEnterFrame;

    }
    loadMovie(tipolog3+"1.swf", cont_mc2);
    onEnterFrame=function(){
    cont_mc3._visible=false;
    //delete onEnterFrame;

    }

    non funziona più il visible=false e si visualizzano subito i file!
    ho messo un trace per vedere se parte l' ONENTERFRAME e in effetti parte.
    ho provato a mettere per ognuno davanti a "onEnterFrame" il nome del mc contenitore:

    cont_mc1.onEnterFrame=function(){

    cont_mc2.onEnterFrame=function(){

    cont_mc3.onEnterFrame=function(){

    e niente di fatto. sapete darmi la motivazione?!

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    243
    identicamente risposto ad un post 2 minuti fa!!!

    visto che lavori in AS2 c'è un classe che si chiama MovieClipLoader();

    ecco la documentazione..

    http://livedocs.adobe.com/flashlite...e=00000703.html

    implementa i meccanismi che ti permettono di fare quello che vuoi tu!


    saluti


    PS:
    usate la ricerca!!!!

  3. #3
    ok grazie allora userò quella!!speriamo vada tutto liscio.
    un dubbio però a riguardo...poichè vorrei utilizzare tale metodo per molti file diversi è possibile non ripetere tutto il codice per ogni caricamento di file? so che è possibile fino alla funzione

    mcListener.onLoadComplete

    ma poi i problemi sorgono nella funzione successiva

    mcListener.onLoadInit

    poichè le azioni da svolgere sono sempre diverse e quindi non attribuibili a tutti i file in maniera identica....

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    243
    li sta nel tuo ingegno di programmatore a diversificare i casi...

    invece di usare un marasma di if potresti usare switch, così:

    function carica($nome_mc:String){
    switch($nome_mc){

    case "intro":
    preloader.onLoadComplete (...) = function { /* qua metti le cose da fare per intro appena ha finito */}
    preloader.load("intro.swf");
    break;

    case "info":
    preloader.onLoadComplete (...) = function { /* qua metti le cose da fare per info appena ha finito */}
    preloader.load("info.swf");
    break;

    deafult:
    preloader.onLoadComplete (...) = function { /* qua metti le cose da fare per main appena ha finito */}
    preloader.load("main.swf");
    }
    }

  5. #5
    ciao ascip!
    innanzitutto mille grazie per la tua pazienza e disponibilità!
    però non essendo molto pratica...potresti dirmi dove mettere il tuo codice all'interno della classe moviecliploader?
    il mio codice è cosi(in fondo trovi i tre file .swf che dovrei precaricare):

    var mcListener:Object = new Object();

    mcListener.onLoadStart = function(target_mc:MovieClip) {
    target_mc._alpha = 0;
    trace("La stanza sta caricando");
    };

    mcListener.onLoadProgress = function(target_mc:MovieClip, bytesLoaded:Number, bytesTotal:Number) {

    var scaricamento:Number = Math.floor((bytesLoaded/bytesTotal)*100);
    trace("Caricati "+bytesLoaded+" bytes di "+bytesTotal+" totali");
    trace("Caricato "+scaricamento+"% dell'immagine");

    };
    mcListener.onLoadComplete = function(target_mc:MovieClip) {
    //target_mc._alpha= 100;
    trace("la stanza ha terminato il caricamento");
    };
    mcListener.onLoadInit = function(target_mc:MovieClip) {
    target_mc._x=0;
    target_mc._y=0;
    };
    var mcLoader:MovieClipLoader = new MovieClipLoader();
    mcLoader.addListener(mcListener);

    mcLoader.loadClip("1.swf",slotportasx);
    mcLoader.loadClip("2.swf",slotportasx);
    mcLoader.loadClip("3.swf",slotportasx);


    Cosa devo fare, trasformare tutto questo script nella funzione "carica"? o mettere il tuo script dopo mcListener.onLoadProgress = function?
    grazie ancora per l'aiuto...!

    P.S. un secondo dubbio è questo...è possibile non settare direttamente qui target_mc._alpha= 100;
    ma farlo al click su un pulsante (e quindi sarà:mc_ospitante._alpha=100)?

  6. #6

    moviecliploader diviso in due

    buongiorno!
    devo precaricare dei file swf esterni e l ho fatto tramite moviecliploader.
    il problema ora è che voglio che mi si visualizzino solo nel momento in cui si clicchi su un pulsante poichè al click su quel pulsante sono legate le variabili che deve prendere tale swf per funzionare (i dati provengono tutti da xml).
    Nel momento in cui mi precarico l' swf con moviecliploader setto il target_mc come visible=false. Però poi ponendolo come visible_true al click sul pulsante non succede nulla.
    vi posto i due codici:

    CODICE SU TIMELINE PRINCIPALE:

    var mcListener:Object = new Object();
    mcListener.onLoadStart = function(target_mc:MovieClip) {
    target_mc._visible = false;
    };
    mcListener.onLoadProgress = function(target_mc:MovieClip, bytesLoaded:Number, bytesTotal:Number) {
    var scaricamento:Number = Math.floor((bytesLoaded/bytesTotal)*100);
    };
    mcListener.onLoadComplete = function(target_mc:MovieClip) {
    trace("terminato il caricamento");
    };

    var mcLoader:MovieClipLoader = new MovieClipLoader();
    mcLoader.addListener(mcListener);
    mcLoader.loadClip("2.swf",cont_mc2);

    CODICE SU PULSANTE:

    pulsante.onPress=function(){
    var mclListener:Object = new Object();
    mclListener.onLoadInit = function(target_mc:MovieClip){
    target_mc._visible=true;
    }
    var mcLoader:MovieClipLoader = new MovieClipLoader();
    mcLoader.addListener(mcListener);
    mcLoader.loadClip("2.swf",_root.cont_mc2);
    };

    GRAZIE!

  7. #7
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    unisco le discussioni visto che sembrano essere sullo stesso filone

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.