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

    problema dalla intro al sito

    Ciao ragazzi posto anche qui il mio problema che ho disperato bisogno di aiuto mi scuso già
    da ora XD

    io ho creato in flash cs4 un sito con tanto di intro
    ovviamente la intro in una scena ed il sito in un altra e fin qui ok
    (sto usando as3)

    il problema è che quando provo ad accedere al sito dalla intro mi da il seguente problema:

    TypeError: Error #1009: Impossibile accedere a una proprietà o a un metodo di un riferimento oggetto null.
    at index_fla::MainTimeline/frame81()
    at flash.display::MovieClip/gotoAndPlay()
    at MethodInfo-180()

    nel pulsante che fa accedere al sito ho dato il nome istanza ita_btn
    ed in un frame per le azioni il seguente codice:

    this.ita_btn.addEventListener(MouseEvent.CLICK, function(){
    gotoAndPlay(1,"italiano");
    });


    e mi va al sito ma compare quel cavolo di errore ed il sito non è navigabile
    mi sapete aiutare?
    grazie

  2. #2
    Utente di HTML.it L'avatar di Sleter
    Registrato dal
    Aug 2005
    Messaggi
    465
    Ciao

    Potrebbe essere che quando passi alla scena2 ci siano funzioni o metodi ancora in esecuzione e che al passaggio alla scena 2 vengono interrotti in quanto gli oggetti abbinati a tali metodi non sono più presenti sullo stage ?
    mah.. è una mia ipotesi in quanto dall' errore che riscontri sembrerebbe che un oggetto non esiste o non viene trovato.

    Comunque per passare da una scena all'altra in AS3 prova così :

    1: Crei un nuovo simbolo pulsante e lo posizioni sullo stage della scena 1.
    2: Dai nome istanza al pulsante, in questo esempio: pulsanteNext.
    3: Inserisci il codice seguente in corrispondenza del fotogramma che contiene il pulsante:

    Codice PHP:
    stop();
    pulsanteNext.addEventListener(MouseEvent.CLICKscenanext);

    function 
    scenanext(evt:MouseEvent):void {
        
    nextScene();

    Se eventualmente ti servisse tornare sulla scena 1, nel fotogramma dove vuoi che ci sia il pulsante di ritorno metti il pulsante con nome istanza: pulsantePrev e inserisci il codice:

    Codice PHP:
    stop();
    pulsantePrev.addEventListener(MouseEvent.CLICKscenaprev);

    function 
    scenaprev(evt:MouseEvent):void {
        
    prevScene();

    Nota: Lo stop(); sul fotogramma che contiene il pulsante è necessario qualora la scena contenga solo 1 fotogramma e si vuole rimanere nella scena 1 fino al click sul pulsante next.

    Nel tuo caso (animazione intro) per che il codice abbia effetto su tutta la timeline deve essere su un suo livello con i rispettivi fotogrammi inseriti da quando vuoi che sia visibile il pulsante di passaggio alla scena successiva fino alla fine dell'intro (fotogrammi normali, non fotogrammi chiave).
    Quando finisce la intro, se non ci sono stop(); il filmato passa alla seconda scena automaticamente senza inserire codici.

    Stessa cosa per lo stop() sulla scena 2.
    Quando la timeline di una scena finisce, automaticamente si passa alla scena successiva se esiste o si ritorna alla prima (ovviamente se non ci sono stop o istruzioni che inviano a una scena specifica).

    Spero di esserti stato di aiuto a risolvere il tuo problema.

    ciao

  3. #3
    ah grazie 1000 ora faccio un pò di esperimenti

    cmq credo di aver capito il problema quel'è...
    se io levo i link nel sito allora dalla intro entrando nella scena successiva il problema scompare.
    Praticamente io ho realizzato dei link ove nel simbolo pulsante gli ho inserito nello stato sopra un movie clip con l'animazione del testo e sembra che sia quello il problema...
    perchè se faccio un pulsante senza stati funziona tutto

    ma a questo punto mi toccherebbe fare per esempio in questo modo? :

    (sarebbe un link del sito)
    movie_1.movie_2.azienda_btn.addEventListener(Mouse Event.CLICK, function(){
    gotoAndPlay(1,"italiano");
    });

    edit:
    ho provato il metodo sopra ma nulla...
    Sai come devo gestire il fatto di inserire un movie clip nel bottone?
    il problema è proprio quello se sostituisco e metto un semplice testo quadrato o quello che è funziona

  4. #4
    Utente di HTML.it L'avatar di Sleter
    Registrato dal
    Aug 2005
    Messaggi
    465
    Sai come devo gestire il fatto di inserire un movie clip nel bottone?
    Per quel che ne sò, è possibile inserire un MovieClip senza problemi nei primi 3 fotogrammi del bottone e questo esegue la sua timeline in loop a meno che non ci sia uno stop(); alla fine dell'animazione.

    Le sentinelle (addEventListener) e le sue funzioni associate quali MouseOver, MouseOut e MouseClick sono già impostate di default, resta solo da definire l'azione che deve compiersi al Click sul pulsante:

    nomePulsante.addEventListener(MouseEvent.CLICK, azione);

    function azione(evt:MouseEvent):void{
    gotoAndPlay(*);
    }

    (*) = (numeroFotogramma o etichettaFotogramma o numeroFotogramma, "etichettaScena").


    P.S.: Aggiungo che a mio parere non ti serve interagire sul MovieClip annidato perchè questo comunque agirebbe sulla Sua timeline mentre a te serve un'azione sulla timeline principale cioè, l'invio al fotogramma o alla scena specifica.
    In tal caso l'azione deve essere associata al click del pulsante, non alll'oggetto MovieClip al suo interno.

  5. #5
    Allora ho fatto come hai suggerito tu...
    il mio intento era quello di dare un animazione al testo del link al passaggio del mouse
    ed ora lo sto gestendo dalla timeline principale
    e sembra funzionare solo una cosa:

    divi_btn.addEventListener(MouseEvent.MOUSE_OVER, function(){
    gotoAndPlay(1);
    });
    divi_btn.addEventListener(MouseEvent.CLICK, function(){
    gotoAndStop(41);
    });
    divi_btn.addEventListener(MouseEvent.MOUSE_OUT, function(){
    gotoAndStop(1);
    });
    divi_btn.buttonMode = true;
    divi_btn.useHandCursor = true;

    questo è il codice che ho usato
    se levo il MOUSE_OUT il pulsante funziona e va nel fotogramma del CLICK ma se lo lascio non va...ovviamente a me il MOUSE_OUT serve perchè devo fare in modo che quando esco dal pulsante esso ritorni nello stato pre-animazione
    come posso fare per riuscire a fare questo benedetto effetto?
    grazie e scusa

  6. #6
    Utente di HTML.it L'avatar di Sleter
    Registrato dal
    Aug 2005
    Messaggi
    465
    Come ho scritto sopra, l'effetto di mouse out e mouse over è già impostato di default nel simbolo bottone.
    Cosi come il buttonMode = true.

    Se un MovieClip con l'effetto del testo animato viene inserito nel secondo fotogramma del bottone, al mouse over parte l'animazione del testo(clipFilmato) senza dover inserire una sola riga di codice.

    Possono esserci problemi se, il MovieClip che hai inserito nel bottone ha zone vuote e che quindi influiscono sulla funzione di mouseOut e mouseOver del bottone (cosa molto probabile se si tratta di un testo).

    Fai una cosa: inserisci un rettangolo trasparente sopra o sotto il testo nel clip per tutta la durata (fotogrammi) dell'animazione.

    Poi lascia solo la funzione del Click al fotogramma specifico.
    Dovrebbe funzionare tutto regolarmente.


    Se invece avessi bisogno di interagire con la timeline del movieClip inserito nel bottone ovvero, fare in modo che l'animazione del clip parta da un fotogramma specifico ad esempio il 5, dovresti creare il bottone con un simbolo MovieClip NON con il simbolo pulsante.

    In quel caso per interagire con la timeline dell' istanza inserita si usa la classica annotazione del "punto" ovvero:

    divi_btn.nomeClip.gotoAndPlay(5);

    (Il movieClip inserito nel divi_btn, partirebbe dal fotogramma 5.)

    Non è possibile usare lo stesso codice per il simbolo pulsante, riceveresti un errore del tipo:
    "Accesso a una proprietà non definita mediante un riferimento con tipo statico flash.display:simpleButton" perchè ? perchè il simbolo pulsante non è predisposto per utilizzare tutti i metodi del simbolo MovieClip, si tratta di 2 classi di oggetti diverse.

    In pratica: Con un MovieClip si può fare tutto quello che fa un pulsante ma un pulsante non può fare quello che può fare un MovieClip.

  7. #7
    ti ringrazio ancora per i tuoi suggerimenti e la tua pazienza ma purtroppo non riesco proprio a farlo funzionare....
    ho provato a mettere il rettangolo sotto la scritta ma cmq mi da sempre lo stesso errore
    (preciso che l'animazione del bottone funziona e che al passaggio del mouse ovviamente scatta l'animazione ma compare sempre quell'errore e il pulsante non funziona)

    aggiungo un altra cosa che se elimino la scena ove si trova la intro il pulsante poi funziona...
    ma perchè??? non so che fare

    avevo provato anche il codice che mi hai suggerito ovvero:

    stop();
    pulsanteNext.addEventListener(MouseEvent.CLICK, scenanext);

    function scenanext(evt:MouseEvent):void {
    nextScene();
    }

    per passare alla scena successiva ma purtroppo anche li solito errore

    ho provato anche a trasformare il movieclip in pulsante....
    divi_btn.addEventListener(MouseEvent.CLICK, function()
    {
    gotoAndStop(41);
    });
    e funziona senza errori andando al fotogramma da me specificato

    ora detto questo...quel movieclip ha un animazione che ovviamente anche senza andare sopra con il mouse contina a ciclare.
    avevo pensato a questo:
    ho messo uno stop al primo fotogramma dell'animazione e poi:
    divi_btn.addEventListener(MouseEvent.MOUSE_OVER, function()
    {
    divi_btn.divisionianimata.gotoAndPlay(1);
    });

    quindi il nomepulsante.Movieclip.gotoAndPlay(1);
    ma purtroppo non funziona

  8. #8
    Utente di HTML.it L'avatar di Sleter
    Registrato dal
    Aug 2005
    Messaggi
    465
    Ciao

    Ho riprodotto la stessa situazione con l'animazione del testo sul movieClip che fa da pulsante e ho riscontrato lo stesso errore.

    Praticamente succede che passando nella seconda scena, gli addEventListener abbinati al clip pulsante continuano a funzionare e chiamano le funzioni abbinate al pulsante che, nella scena 2, non esiste più !

    Di conseguenza da un errore del tipo:
    "Impossibile accedere a una proprietà o a un metodo di un riferimento oggetto null".

    Per risolvere occorre rimuovere gli addEventListener associati al clip pulsante nella funzione: nextScene.

    Inoltre per evitare che l'animazione del testo si blocchi al fotogramma 2 occorre dargli il suo nome istanza (es. "testo") e richiamarlo direttamente nel codice con:

    Codice PHP:
    pulsanteNext.testo.gotoAndPlay(2); 
    Ti riporto sotto il codice con la rimozione degli addEventListener da mettere nella scena 1 per passare alla scena 2 senza problemi.

    Codice PHP:
    stop();

    pulsanteNext.addEventListener(MouseEvent.MOUSE_OVERattivaPulsanteNext);
    pulsanteNext.addEventListener(MouseEvent.MOUSE_OUTdisattivaPulsanteNext);
    pulsanteNext.addEventListener(MouseEvent.CLICKscenaNext);

    function 
    scenaNext(evt:MouseEvent):void {

        
    pulsanteNext.removeEventListener(MouseEvent.MOUSE_OVERattivaPulsanteNext);
        
    pulsanteNext.removeEventListener(MouseEvent.MOUSE_OUTdisattivaPulsanteNext);
        
    pulsanteNext.removeEventListener(MouseEvent.CLICKscenaNext);
        
    nextScene();
    }
    function 
    attivaPulsanteNext(evt:MouseEvent):void {
        
    pulsanteNext.gotoAndStop(2);
        
    pulsanteNext.testo.gotoAndPlay(2);
    }
    function 
    disattivaPulsanteNext(evt:MouseEvent):void {
        
    pulsanteNext.gotoAndStop(1);
        
    pulsanteNext.testo.gotoAndStop(1);

    Ho testato il tutto in un file di esempio con il testo animato sul clip pulsante e funziona perfettamente.
    Se eventualmente qualcosa non ti è chiaro scrivimi un'email dal forum che ti spedisco il .fla di esempio.

    ciao

  9. #9
    ti ho inviato l'e-mail ah grazie ancora eh

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.