Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13

Discussione: Tenere A Bada La Cpu

  1. #1

    Tenere A Bada La Cpu

    ciao a tutti!
    mi rivolgo a voi con una questione spinosa:

    spesso mi ritrovo, come molti altri di voi, ad utilizzare l'evento onEnterFrame su più movieclip per ottenere un effetto continuativo (come il movimento su _x ad esempio) o un effetto di fade...
    il punto è che questo tipo di programmazione grava parecchio sulla cpu, in particolar modo se i clip onEnterFrame sono molti.

    esempio:
    voglio spostare una clip da una_x=100 ad una _x =400.
    E NON VOGLIO UTILIZZARE I FRAME.

    soluzioni che ho adottato io:
    1.mioClip.onEnterFrame=function(){
    this._x+=(400-this._x)/5 //il /5 è un po' la velocità...
    }

    2.stessa cosa fatta con setInterval: così non usi l'enterFrame, ma se esageri nell'impostazione dei millisecondi diventa equivalente all'onEnterFrame, se tieni valori alti (tipo 100 o 1000) l'animazione diventa più scattosa, cosa che una solitamente cerca di evitare

    3.uso un ciclo if, ma devo tenere l' onEnterFrame per ottenere un'animazione fluida..
    es: myclip.onEnterFrame=function(){
    if(this._x<400){
    this._x++ //o this._x+=3,4,10 se voglio aumentare la velocità

    ora:che io sappia un'altra alternativa e creare due file:uno offline con il mio movimento creato con interpolazione, faccio il trace delle coordinate (in questo caso l _x del mio clip) e lo memorizzo in un Array che nel file on line verra utilizzato come posizione x incrementale del mio clip E QUINDI DEVO COMUNQUE USARE L ENTERFRAME.

    quindi sfida:cerco qualcuno che senza interpolazioni e senza enterframe riesca a muovere un clip fluidamente fino ad una x specificata.
    chiedo troppo?io non so più come fare.

    ringrazio tutti anticipatamente per l'attenzione!


    |il bipede|
    http://xoomer.virgilio.it/betadesign/

  2. #2
    e in questa maniera il ciclo on enter frame si blocca?come lo "riattivo" se mi serve in seguito sulla stessa movieclip?
    grazie

  3. #3

    fatto

    ho fatto tre prove:

    1.metodo mio tradizionale (il punto 1 del primo post)
    2.metodo tuo con enter frame undefined
    3.metodo tuo sposta mc

    a livello di task manager non ci sono cambiamenti, nel senso che in entrambi i primi due casi la %cpu è la stessa (sigh)

    il terzo metodo l'ho usato più volte utilizzando il parametro MovieClip nella funzione, tipo così:
    function spostaticazzodai (MovieClip,dist,speed){
    MovieClip._x+=(dist-MovieClip._x)/speed
    }

    in questa maniera pensavo che creando una funzione che accettasse come parametri anche la movieclip scelta avrei sgravato l'utilizzo della cpu, ma non funziona:è comodo per programmare per logicità, ma non inganni il flash player.

    rimango convinto che è l'evento enterframe che aumenta la cpu, ma a questo punto penso che non si possa fare altrimenti...



  4. #4
    non so proprio!!comunque se dai un'occhiata al mio sito te ne rendi conto osservando il pallino che si muove da sinistra a destra e viceversa in basso a sinistra...
    l'ho fatto apposta con un'interpolazione per vedere come si muoveva man mano che i vari enter frame del sito si caricano (anche da swf esterni)...RALLENTA PAUROSAMENTE, così come i vari enterframe in movimento...

    ti ringrazio molto per il tuo aiuto comunque, ora faccio un po' di prove con il tuo undefined che non ho mai usato e vedremo cosa succede!!

    bip-ede

    http://www.geturl.it
    http://www.geturl.it/flash.htm

  5. #5
    letto.
    grazie del link, ci sto lavorando, se ho novità aggiorno.

    grazie!
    bip-ede

    http://www.geturl.it
    http://www.geturl.it/flash.htm

  6. #6
    ho appena pubblicato il sito

    http://xoomer.virgilio.it/betadesign/

    con tutti gli enterframe corretti come mi hai suggerito tu.
    Pare che sia leggermente più veloce, anche se fatica ancora un po'.
    la cpu arriva a qualche punto in meno fortunatamente, anche se il risultato non mi soddisfa pienamente, e credo che un pc poco potente possa avere numerosi problemi di visualizzazione.

    in ogni caso ti ringrazio!

    bipede
    bip-ede

    http://www.geturl.it
    http://www.geturl.it/flash.htm

  7. #7
    Secondo me sono tutte quelle bitmap che ti rallentano tutto, anche perché quando spariscono in realtà sono ancora lì sotto che girano, vero?

  8. #8
    certo, le immagini hanno un certo peso, (8 k in tutto), però ho scoperto che è soprattutto il menu a rallentare il sito. Prova a non cliccare sul menu e a giocare un po' con il mouse sulle immagini...poi apri il menu e rigioca!è l'enterframe della maschera nidificata all'interno del movie clip che tende a inchiodare tutto.

    cmq sto cercando di risolvere il discorso e da ieri la navigazione mi sembra più veloce e scorrevole, anche se si può migliorare!
    grazie
    il bipede
    bip-ede

    http://www.geturl.it
    http://www.geturl.it/flash.htm

  9. #9
    Be', io l'ho provato qui in ufficio e ti posso dire che sul Mac i filmati, specie con molto AS, sono già meno prestanti evidentemente per un cattivo utilizzo del processore da parte del Flash Player per Mac. Il tuo però sembra davvero poco prestante, ed effettivamente non c'è molta roba a livello visivo, con una grafica come quella che utilizzi tu dovrebbe "schizzare" anche su Mac. Le bitmap appesantiscono già di per sé un qualsiasi filmato, se poi le fai muovere in quel modo con un enterFrame anche quando non serve (vedi quando vengono nascoste) è normale che creino un certo stress alla CPU. Poi non so cos'altro hai "combinato" tu nel tuo filmato, quindi può darsi che vi sia qualche pezzo di codice che rallenta ancora di più il tutto.

  10. #10
    ti dirò:se mi dici così penso che se avessi guardato il sito ieri non saresti riuscito nemmeno ad aprirlo, perchè era lentissimo!!!!
    Credo comunque che dopo questa esperienza (l'ho programmato su un solo frame, senza nessuna interpolazione) cercherò di fare la maggior parte delle cose con le interpolazioni!questa notte ho bloccato tutti gli on enterframe dopo l'azione...mi spiego: ho creato cicli condizionali per "chiudere" gli enterframe (con undefined() ) e così liberare più memoria possibile, ma da come dici tu il risultato è migliore, ma non è sufficiente per garantire che la maggior parte delle persone possano navigare nel sito agevolmente...

    tristezza | rammarico

    poi ho appena visto il nuovo nikelab.com,
    e mi rendo conto che l'actionscript è un limite serio di flash, quando si tratta di scegliere tra peso del filmato e quantità di programmazione.

    a meno che non si trovi una maniera per evitare l'enter frame, che sovraccarica troppo il processore.

    rinunciare alle animazioni??
    ...non so...

    cosa ne pensi?

    bip-ede

    http://www.geturl.it
    http://www.geturl.it/flash.htm

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.