Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 23
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    412

    [AS3] Fermare la ripdroduzione di un filmato in un determinato frame

    Salve, ho un problema con action script 3. In pratica mi servirebbe il corrispettivo di un ipotetico comando "playAndStop" che purtroppo non esiste .
    Voglio in altre parole che la ripdroduzione di un filmato venga stoppata una volta raggiunto un determinato frame, questo tuttavia senza mettere il codice direttamente all'interno del frame stesso.
    Voglio dire, normalmente si selezionerebbe il frame e nel pannello azioni si metterebbe stop(), io invece lo stop non voglio inserirlo in maniera così "diretta" sul frame in quanto esso deve essere "eseguito" solo dopo il verificarsi di un evento.

    Se può esservi utile vi dirò anche a cosa mi serve, per il momento preferisco non complicare troppo le cose

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2009
    residenza
    Olbia
    Messaggi
    2,930
    Ciao non so se è il modo più giusto per farlo perchè in as3 sono molto scarso però funziona.
    Codice PHP:
    var _stop:Boolean=false
    trace
    (_stop)
    btn.addEventListener(MouseEvent.CLICKonClick);
    function 
    onClick(evt:MouseEvent):void{
    _stop=true
    }
    mc.addEventListener Event.ENTER_FRAMEtraceFrame );
    function 
    traceFrame Event ) : void
    {
    trace e.target.currentFrame )

    if(
    _stop==true&&mc.currentFrame==60)
    {
    mc.stop()
    }

    l'evento in questo caso è il click la boleana diventa true e quando la time line di mc è=60 si ferma.

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    412
    ciao, grazie
    se ho capito bene quando _stop è = a true il filmato è in riproduzione, quando invece è false è fermo giusto? anche se per una questione di chiarezza è più intuibile se fosse l'inverso.

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2009
    residenza
    Olbia
    Messaggi
    2,930
    No false è il valore iniziale e il filmato non si ferma perchè la condizione if non è soddisfata, infatti la condizione if è soddisfata quando La variabile _stop è true e la testina passa sul frame 60.
    codice:
    if(_stop==true&&mc.currentFrame==60)

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    412
    hum, ma non bastava fare il controllo sulla posizione della testina? Come mai c'è bisogno di utilizzare anche la variabile _stop?

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2009
    residenza
    Olbia
    Messaggi
    2,930
    Veramente sei tu che hai parlato di evento.
    in quanto esso deve essere "eseguito" solo dopo il verificarsi di un evento.

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    412
    ah si hai ragione, quindi quel _stop ci serve come per "segnalare" che l'evento si è verificato

    Cmq sempre inerente a quello che devo fare, volevo sapere se esiste una funzione che permetta di riprodurre il filmato a ritroso. Ho trovato la funzione "yoyo", tuttavia non fa al mio caso in quanto questa prima esegue il filmato fino all'ultimo fotogramma e poi torna indietro. A me serve tornare indietro in qualsiasi momento del clip in maniera istantanea, qualsiasi sia la posizione della testina, senza che arrivi prima alla fine.

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2009
    residenza
    Olbia
    Messaggi
    2,930
    Perfetto la boleana serve appunto per controllare che quel determinato evento si è verificato, altrimenti sarebbe bastato il classico stop sul frame, per quanto riguarda il reverse del filmato io purtroppo lo so fare solo in as2, speriamo che legga il thread qualche bravo svilupatore di as3, attualmente vedo che sono molti quelli che danno una mano, però forse è meglio se apri una discussione specifica per questo argomento, forse hai più probabilità che venga letta, perchè quà magari vedono che ci sono risposte e non leggono sino in fondo.

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2009
    residenza
    Olbia
    Messaggi
    2,930
    Cosi al click la boleana diventa true e il moviclip effettua il reverse della sua time line.
    codice:
    var _stop:Boolean=false
    trace(_stop)
    btn.addEventListener(MouseEvent.CLICK, onClick);
    function onClick(evt:MouseEvent):void{
    _stop=true
    }
    mc.addEventListener ( Event.ENTER_FRAME, traceFrame );
    function traceFrame ( e : Event ) : void
    {
    trace ( e.target.currentFrame )
    
    if(_stop==true)
    {mc.prevFrame()
    }
    }

  10. #10
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    412
    ti ringrazio per l'aiuto, tuttavia come hai scritto tu la riproduzione passa al frame precedente e si ferma. Ad esempio, se la testina sta al frame 30, passa la 29 e basta.

    Nel mio caso ho bisogno che la testina vada dal 30 al 15° frame riproducendo tutti i fotogrammi che vi sono in mezzo.
    Andando ad intuito mi basta scrivere una funzione che applichi il "prevFrame" fintanto che il "currentFrame" non sia = 15, giusto?

    Ad ogni modo a quanto pare non esiste di default in AC3 una funzione che adempia a tale scopo. L'ideale sarebbe stata ad esempio la presenza di un fantomatico reversePlay()

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.