• User Attivo

    ActionScript 3.0 e pulsanti_btn nidificati nei filmati?

    Creo il mio sito con
    1 & 2) il sommario verticale con N bottoni e gli stessi

    3 ) le scene o meglio i ClipFilmati che hanno il nome delle scene

    adesso se nell CF totale_MC metto dentro il sommario_MC

    e volessi che i pulsante btn1 vada nel CFTotale_MC e nel relativo fotogramma contenente il Filmato1 ?

    Cosa dovrei fare ?se uso il seguente codice

    
    btn1.addEventListener(MouseEvent.CLICK,vai);
    
    function vai (event:MouseEvent) {
    	this.CFTotale_MC.Filmato1.gotoAndPlay(5);
    
    }
    
    

    mi viene fuori il seguente errore dal OUTPUT

    
    TypeError: Error #1010: Un termine risulta undefined e non ha proprietà.
    	at sommario/vai()
    
    

  • Super User

    Caio errore 1010 perchè quando flash legge il codice non trova l'istanza evidentemente non è ancora presente sullo stage perchè è in frame più avanti, se è un clip filmato puoi risolvere mettendola in un livello dedicato la metti sul primo frame con l'alpha a zero e porti l'alpha a 1 quando vuoi che compaia.


  • User Attivo

    @Nhatan said:

    Caio errore 1010 perchè quando flash legge il codice non trova l'istanza evidentemente non è ancora presente sullo stage perchè è in frame più avanti, se è un clip filmato puoi risolvere mettendola in un livello dedicato la metti sul primo frame con l'alpha a zero e porti l'alpha a 1 quando vuoi che compaia.

    Quindi i clip filmati nidificati non sono nello stage ?


  • Super User

    Non intendevo questo, intendevo dire che quando flash legge il codice, la testina di riproduzione non è ancora passata sul clip nidificato, perchè questo non è presente nel primo frame, ma viene trovato solo dopo, infatti l'errore dice accesso ad una proprietà non definita, se invece tu lo metti nel primo frame del clip contenitore vedrai che viene trovato, comunque puoi fare anche così: se ad esempio chiami mc1 il clip contenitore e mc2 il clip nidificato nel primo frame scrivi

    
    mc1.buttonMode=true
    mc1.addEventListener(MouseEvent.CLICK, onClick);
    function onClick(evt:MouseEvent):void
    {
    if(mc1.mc2.hitTestPoint(mouseX,mouseY,true)){
    
    trace("Click sul pulsante nidificato")
    }
    }
    
    

    Il clip nidificato viene trovato anche se è in un frame interno, è il metodo hitTest di as2 che in as3 diventa hitTestpoint.