Visualizzazione dei risultati da 1 a 9 su 9

Discussione: Controllo semplice

  1. #1

    Controllo semplice

    Ciao ragazzi, premetto che lavoro in AS3.

    Allora io ho sulla timeline principale un movieclip, la cui timeline interna parte all'evento di clicl su questo simbolo.


    Ora dovrei dire alla timeline principale gotoAndPlay(2) quando li timeline del simbolo è arrivata all'ultimo frame, quindi è finita l'animazione.

    Come posso passare questa condizione?

    grazie di tutto
    http://codecanyon.net/category/all?ref=Manuelandro
    And I bet she told a million people that she'd stay in touch, Well all the little promises they dont mean much,When theres
    memories to be made

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Puoi aggiungere un controllo di evento sull'ultimo frame di quel movieclip, usando la funzione dispatchEvent, ad esempio lo puoi aggiungere per lo stage, quindi sull'ultimo frame (keyframe) di quel movieclip scrivi:

    Codice PHP:
    stop();
    stage.dispatchEvent(new Event("customEvent")); 
    Mentre sulla timeline principale imposti la verifica dell'evento con addEventListener, specificando una funzione che deve essere eseguita quando il clip ha raggiunto la fine:

    Codice PHP:
    stage.addEventListener("customEvent"customFoo);
    function 
    customFoo (evt:Event):void {
    // azioni da eseguire alla fine dell'animazione sul clip


  3. #3
    guarda, il tuo metodo funziona perfettamente, solo che mi è sorto un piccolo problema per arrivarci a quel punto, se hai la pazienza di aiutarmi anche in questo te ne sono veramente riconoscente.


    Praticamente in quel simbolo di cui ti parlavo c'è l'animazione del preload, che in base al numero di bytes caricati passa avanti di un frame dove c'è l'immagine dello stato attuale di caricamento. Quindi ho 10 frame (quando arriva al 10% di caricamento, al 20% etc etc) ed un 11 frame finale dove poi c'è il codice che mi hai dato prima.

    Il problema è che non riesco ad arrivare all'undicesimo, mi si blocca sempre al decimo anche se io li non ho stop(); ed il codice gli dice gotoAndPlay quando è arrivato al 100%.

    Il codice è il seguente:

    Codice PHP:

    var bytes_caricati Math.round(stage.loaderInfo.bytesLoaded); 
    var 
    bytes_totali Math.round(stage.loaderInfo.bytesTotal);
    var 
    percentuale Math.round((bytes_caricati/bytes_totali)*100);


    if(
    isNaN(percentuale)) {     trace("è un numero");   } 
    else {   
    percentuale Number(percentuale); } 


    if (
    percentuale >= && percentuale <20) {  
           
    preload.gotoAndStop(1); 
           
    trace("passaggio 1");  
     }

    else if(
    percentuale >= 20 && percentuale 30) {
           
    preload.gotoAndStop(2);
           
    trace("passaggio 2");
    }
    else if(
    percentuale >= 30 && percentuale 40) {
           
    preload.gotoAndStop(3);
           
    trace("passaggio 3");
    }
    else if(
    percentuale >= 40 && percentuale 50) {
           
    preload.gotoAndStop(4);
           
    trace("passaggio 4");
    }
    else if(
    percentuale >= 50 && percentuale 60) {
           
    preload.gotoAndStop(5);
           
    trace("passaggio 5");
    }
    else if(
    percentuale >= 60 && percentuale 70) {
           
    preload.gotoAndStop(6);
           
    trace("passaggio 6");
    }
    else if(
    percentuale >= 70 && percentuale 80) {
           
    preload.gotoAndStop(7);
           
    trace("passaggio 7");
    }
    else if(
    percentuale >= 80 && percentuale 90) {
           
    preload.gotoAndStop(8);
           
    trace("passaggio 8");
    }
    else if(
    percentuale >= 90 && percentuale 100) {
           
    preload.gotoAndStop(9);
           
    trace("passaggio 9");
    }
    else if(
    percentuale==100) {
           
    preload.gotoAndPlay(10);
           
    trace("passaggio 10");
    }

    //preload è naturalmente  il nome d'istanza del clip 
    come dicevo lo stop sul 10 non esiste proprio, anche perchè al 10 deve partire per l'11.
    Inoltre il trace non so perchè, ma anche in modalità simulazione download, mi da sempre e solo "passaggio 10", come se saltasse i primi 9.

    n.b. ovviamente il tutto sta in un evento enter_frame

    Dove sbaglio?

    grazie sei davvero molto gentile
    http://codecanyon.net/category/all?ref=Manuelandro
    And I bet she told a million people that she'd stay in touch, Well all the little promises they dont mean much,When theres
    memories to be made

  4. #4
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Beh il preload non avanza (non dovrebbe) oltre il 100%, quindi lui, essendo in un enterFrame, continua a loopare sull'ultima condizione, quindi continua ad andare sul frame 10, anche se lo manda in play.
    Comunque pensavo che ti servisse per altro, sinceramente per un preload sarei meno dispersivo, ed userei direttamente una condizione al frame finale, tra l'altro eviterei anche tutti quegli if...else, visto che ti devi spostare su frame specifici dall'1 al 10, puoi fare direttamente così:

    Codice PHP:
    var bytes_caricati Math.round(stage.loaderInfo.bytesLoaded);
    var 
    bytes_totali Math.round(stage.loaderInfo.bytesTotal);
    var 
    percentuale Math.round((bytes_caricati/bytes_totali)*10); // per il numero di frame dell'animazione utile, quindi 10
    if(!isNaN(percentuale)) {
        
    preload.gotoAndStop(percentuale);
    }
    if (
    bytes_caricati >= bytes_totali && bytes_totali percentuale && percentuale == 100) {
        
    //rimuovi l'enterframe con removeEventListener(Event.ENTER_FRAME, nomefunzione)
        // vai al frame che vuoi avviare con gotoAndPlay o gotoAndStop


  5. #5
    si blocca sempre!

    Codice PHP:
    stop();

    this.addEventListener(Event.ENTER_FRAMEcaricamento);

    function 
    caricamento(e:Event) {

    var 
    bytes_caricati Math.round(stage.loaderInfo.bytesLoaded);
    var 
    bytes_totali Math.round(stage.loaderInfo.bytesTotal);
    var 
    percentuale Math.round((bytes_caricati/bytes_totali)*10); // per il numero di frame dell'animazione utile, quindi 10
    percentuale Number(percentuale);
    if(!
    isNaN(percentuale)) {
        
    preload.gotoAndStop(percentuale);



    if (
    bytes_caricati >= bytes_totali && bytes_totali percentuale && percentuale == 100) {
        
        
    this.removeEventListener(Event.ENTER_FRAMEcaricamento);
        
    gotoAndPlay(11);
    }


    http://codecanyon.net/category/all?ref=Manuelandro
    And I bet she told a million people that she'd stay in touch, Well all the little promises they dont mean much,When theres
    memories to be made

  6. #6
    e il trace di percentuale mi da ancora sempre 10, mentre se faccio la simulazione download diventa tutto bianco e ci resta
    http://codecanyon.net/category/all?ref=Manuelandro
    And I bet she told a million people that she'd stay in touch, Well all the little promises they dont mean much,When theres
    memories to be made

  7. #7
    ah ok, il problema sembrava essere che non èra più percentuale == 100 ma percentuale == 10.

    Mi resta ancora strano come mai con la simulazione download si vede tutto bianco.

    vabeh sei già stato fin trioppo gentile, grazie di tutto veramente!
    http://codecanyon.net/category/all?ref=Manuelandro
    And I bet she told a million people that she'd stay in touch, Well all the little promises they dont mean much,When theres
    memories to be made

  8. #8
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Ho testato diverse volte la simulazione del preload principale su flash e ho sempre avuto problemi con un preload classico come questo, mentre testato sul web sembra funzionare correttamente.

  9. #9
    ti ringrazio allora, proverò a pubblicarlo

    http://codecanyon.net/category/all?ref=Manuelandro
    And I bet she told a million people that she'd stay in touch, Well all the little promises they dont mean much,When theres
    memories to be made

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.