Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Istanza+onLoad

  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,628

    Istanza+onLoad

    Ho un cli filmato formato da 3 fotogrammi chiave con uno stop su ognuno di essi.
    Nel primo ho un pallino rosso, nel secondo il medesima ma verse e nel terzo uno blu.
    Metto trevolte il clip filmato in scena.
    Il primo non lo istanzio mentre gli altri deu si con nome "due" e "tre".
    Se sul primo fotgramma della linea temporale principale scrivo:

    uno.onLoad=function(){
    this.gotoAndStop(2);
    }

    due.onLoad=function(){
    this.gotoAndStop(3);
    }

    quando faccio un'anteprima continua a vedere 3 pallini del medesimo colore...in poche parole ne "uno", ne "due" sono andati sul loro ripsettivo foogramma.

    Se invece scrivo:

    onLoad=function(){
    uno.gotoAndStop(2);
    due.gotoAndStop(3);
    }

    allora funziona....
    Ma non è la stessa cosa???

  2. #2
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    Stai facendo molta confusione. Ecco i punti salienti:

    1. non puoi gestire un oggetto che non è attivo in quel momento (mandarlo al frame 2, ad esempio) da un altro frame, cioè non puoi mandare al frame "x" un movieclip che sta nel frame 2 con uno script che sta nel frame 1

    2. non puoi assegnare un gestore di evento ad un oggetto che non è attivo in quel momento, cioè non puoi dal frame 1 assegnare un evento ad un oggetto che sta sul frame 2 (non è lì in quel momento)

    3. non puoi assegnare l'evento onLoad ad un movieclip senza un accorgimento particolare (si tratta di un malfuzionamento riportato)

    4. scrivere
    codice:
    oggetto.onLoad
    è diverso da scrivere
    codice:
    onLoad
    e basta, in quanto è sottinteso (nel secondo caso)
    codice:
    this.onLoad
    e quindi, nel tuo caso
    codice:
    _root.onLoad

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,628

    Re:

    No ma..un momento.
    Le istanze "due" e "tre" non sono sul secondo fotogramma della linea temporale....sono sul primo...proprio dove c'è lo script.

    Ecco perchè pensavo che scrivendo:
    due.onLoad=function(){
    azioni
    }
    dovesse funzionare...lo scrivo nel fotogramma dove l'istanza esiste e quindi è load....

  4. #4
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    Ok, allora in questo caso ricadi nel punto 3. Perchè l'evento onLoad possa essere assegnato ad un movieclip, questo deve già essere inizializzato, e quindi il momento del "load" è già avvenuto. Se vuoi che funzioni, devi ricorrere a questo trucco:

    1. selezioni il movieclip
    2. apri il pannello delle azioni
    3. mandi una volta a capo

    La sola aggiunta di questa riga vuota fa funzionare l'onLoad via actionscript. D'altronde, scrivere:
    codice:
    due.onLoad=function()
    {
    	trace("caricato");
    }
    in relazione ad un movieclip (non ad un component), ha poco senso, perchè equivalente a scrivere direttamente:
    codice:
    trace("caricato");
    (questo perchè, per poter assegnare l'evento, il movieclip è sicuramente già lì, e quindi non vale la pena creare un riferimento ad una funzione)

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,628

    Re:

    Il fatto d'aver saltato la riga non lo ha convinto...

    Tuttavia ho scritto direttamente coem hai detto:

    due.gotoAndStop(2);
    tre.gotoAndStop(3);

    e..funziona..non pensiamoci +....

    Mercì...

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.