Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    477

    [AS3] leggere variabile dentro a clip duplicato

    Ciao a tutti,
    migrando ad AS3 purtroppo non mi è ancora tutto chiaro. Ad esempio ho creato un clip in libreria esportabile per as. All'interno del clip, sul frame ho dichiarato una variabile che si chiama urlImg. La mia idea è quella di cambiare il valore alla variabile per ogni istanza del clip creata sullo stage, per poi poter leggere successivamente il valore.
    È forse sbagliata la logica in partenza?

    Il codice è questo:

    codice:
    for (var k:uint=0; k<prodotto.immagini.children().length(); k++) {
    var thumbImg:Anteprima=new Anteprima();
    contImg.addChild(thumbImg);
    thumbImg.x=86*k;
    thumbImg.urlImg=prodotto.immagini.children()[k].children();
    thumbImg.addEventListener(MouseEvent.CLICK, carica);
    
    function carica(event:MouseEvent):void{
    trace(event.target["urlImg"]);
    }
    Mi da errore la funzione carica

    Chi mi può aiutare?
    Grazie

  2. #2
    Che errore ti da?

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    477
    Ho sbagliato a copiare il codice....la riga

    codice:
    thumbImg.urlImg=prodotto.immagini.children()[k].children();
    È giusta così:

    codice:
    thumbImg["urlImg"]=prodotto.immagini.children()[k].children();

    L'errore che ancora non ho risolto è questo:

    ReferenceError: Error #1069: Impossibile trovare la proprietà urlImg su flash.display.Loader e nessun valore predefinito presente.
    at Detprod/carica()

  4. #4
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    L'errore ti dice che non esiste una proprietà "urlImg" su thumbImg, che lui riconosce come istanza della classe Loader.
    Ora, se il clip l'hai creato manualmente e poi messo in libreria, dovrebbe trattarsi di un MovieClip, salvo che non ci siano delle istruzioni tali dentro al clip o nell'esportazione da fargli credere di essere un Loader.

    Potresti provare a effettuare un casting di thumbImg per fargli credere di essere un MovieClip e vedere se così funziona.

    MovieClip(thumbImg)["urlImg"]=prodotto.immagini.children()[k].children();

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    477
    Originariamente inviato da and80
    ...salvo che non ci siano delle istruzioni tali dentro al clip o nell'esportazione da fargli credere di essere un Loader.
    Grazie and80, mi hai acceso la lampadina!
    In effetti il clip duplicato contiene un altro clip vuoto che carica l'immagine di anteprima....avevo tralasciato questo dettaglio perché pensavo non fosse importante, invece era proprio l'origine del problema.

    In scrittura la variabile prendeva il valore (avevo verificato tramite trace), il problema era in lettura. Trattandosi di un Loader dentro ad un altro Loader è bastato aggiungere due parent per poter raggiungere la variabile urlImg.

    Quindi ho risolto cambiando soltanto il trace della funzione carica() come segue:

    trace(event.target.parent.parent["urlImg"]);

    Grazie mille!
    Ciao

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.