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

    [AS3] UILoader - Evento - Sorgente

    Ciao a tutti,
    ho questo problema:
    In base ad un XML creo una galleria di immagini grazie a un for che genera tanti UILoader quanto detto nell'xml e vi inserisce dentro le immagini jpg tramite gli url scritti sempre nell'xml.

    Ora a me serve ricavare l'url dell'immagine presente nell'UILoader sul quale l'utente clicca.

    Ho provato a fare così:
    codice:
    var xmlImg:XML = new XML(e.target.data);
    var thumbW:uint = xmlImg.attribute("thumbWidth");
    var thumbH:uint = xmlImg.attribute("thumbHeight");
    
    for(var i:uint; i < xmlImg.img.length(); i++){
    	req = new URLRequest(xmlImg.img[ i ].path);
    	thumbnail = new UILoader();
    	thumbnail.load(req);
    	thumbnail.x = 0;
    	thumbnail.y = i*thumbH;
    	thumbnail.setSize(thumbW,thumbH);
    	thumbnail.addEventListener(MouseEvent.MOUSE_OVER, zoom);
    	thumbnail.addEventListener(MouseEvent.CLICK, imgChange); 
    	addChild(thumbnail);
    }
    
    function zoom(e:MouseEvent){
    	
    }
    
    function imgChange(e:MouseEvent){
    	trace(e.target);
    }
    Il trace restituisce [Object Loader] che è diverso dall'UILoader e che quindi non ha più l'attributo source, ma l'attributo content... che mi restituisce [Object Bitmap] e anche da questa classe non riesco a trovare un modo per ricavare l'url dell'immagine cliccata....

    come posso fare?

    Grazie in anticipo ^^
    Flash Developer for Rich Media
    PHP, jQuery Developer

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Dal Loader puoi provare a richiamare la proprietà "contentLoaderInfo" da cui puoi leggere la proprietà "url".

  3. #3
    Proprio quello che mi serviva!
    Grazie mille =)

    EDIT:
    Un'altra cosa:
    se io invece del new UILoader avessi un new MiaClasse che cmq estende UILoader... è possibile farsi ritornare MiaClasse da e.target quando gli si collegano degli addEventListener?

    Perché a me servirebbe accedere a dei metodi specifici di MiaClasse. Però non ci riesco perché e.target è sempre un oggetto [Object Loader].
    Flash Developer for Rich Media
    PHP, jQuery Developer

  4. #4
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Originariamente inviato da Miroku

    Un'altra cosa:
    se io invece del new UILoader avessi un new MiaClasse che cmq estende UILoader... è possibile farsi ritornare MiaClasse da e.target quando gli si collegano degli addEventListener?

    Perché a me servirebbe accedere a dei metodi specifici di MiaClasse. Però non ci riesco perché e.target è sempre un oggetto [Object Loader].
    Dipende da come è scritta la classe, non uso componenti come l'UILoader e non so come funziona esattamente, quando assegni gli eventi come lo fai? Converebbe che inserissi un esempio di quello che fai.

    Comunque in generale se una classe ne estende un'altra, salvo situazioni particolari (probabilissimo nel caso dei components), i listener sono collegati alla classe che ha esteso.
    Il caso del Loader è un po' particolare perché gli eventi di caricamento non sono legati a lei ma alla sua proprietà "contentLoaderInfo".

  5. #5
    Ho risolto!
    Invece di usare e.target uso e.currentTarget e ho quello che mi serve!
    Grazie mille lo stesso
    Flash Developer for Rich Media
    PHP, jQuery Developer

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.