Ok, sto creando la solita galleria in flash usando per l'appunto Papervision3D usando un bel tutorial trovato qui

Tuttavia il listener ha come target solo la prima foto, ora, avevo letto su un'altro tutorial (questo) che dando come target al listener l'oggetto che contiene tutte le foto e aggiungendo poi un parametro booleano a true (lo useCapture) si poteva fa in modo che il listener fosse attivo per tutte le foto singolarmente invece che per tutto l'album in blocco.

La citazione precisa e:
album.addEventListener(MouseEvent.ROLL_OVER, onOver, true);
album.addEventListener(MouseEvent.ROLL_OUT, onOut, true);

//listener in caso di ridimensionamento della pagina web
stage.addEventListener(Event.RESIZE, onResize);

//listener per dare l’effetto 3D al movimento del mouse
stage.addEventListener(MouseEvent.MOUSE_MOVE, muovi_album);

I 2 listener sono un po’ particolari, innanzitutto un occhio attento si accorge che il listener è inserito nell’oggetto “album” che contiene tutte le foto e che quindi, in caso di roll over, è questo l’oggetto target del listener, e non una sola foto. Come è possibile che però, andando col mouse sopra una foto, si modifica la luminosità di SOLO quella foto e non di tutto l’album?
Cerchiamo di capirlo.
Nel listener vediamo, in conclusione, la presenza (alquanto insolita) di un parametro booleano (true in questo caso), esso rappresenta un argomento denominato “useCapture” un po’ difficile da spiegare (riguarda i passaggi di propagazione di un evento, cose da puri programmatori), ma in pratica serve per far attivare il listener precisamente sull’oggetto interno che in questo caso viene colpito dal passaggio del mouse. In poche parole è come se il listener fosse su ogni foto e non su tutto l’album. In questo modo però si scrive meno codice (certo… se uno lo sa!
Alla luce di tutto questo ho provato a fare altrettanto con il mio script e ovviamente questo non ha avuto alcun effetto:


Codice PHP:
package com.flashmoto.gallery
{
    
import br.com.stimuli.loading.BulkErrorEvent;
    
import br.com.stimuli.loading.BulkLoader;
    
import br.com.stimuli.loading.BulkProgressEvent;

    
import caurina.transitions.Tweener;

    
import flash.display.Bitmap;
    
import flash.display.MovieClip;
    
import flash.display.Sprite;
    
import flash.events.Event;
    
import flash.geom.Rectangle;
    
import flash.system.Capabilities;
    
import flash.text.TextField;

    
import org.papervision3d.Papervision3D;
    
import org.papervision3d.cameras.Camera3D;
    
import org.papervision3d.core.log.PaperLogger;
    
import org.papervision3d.core.log.PaperTraceLogger;
    
import org.papervision3d.events.InteractiveScene3DEvent;
    
import org.papervision3d.materials.*;
    
//import org.papervision3d.materials.BitmapMaterial;
    //import org.papervision3d.materials.MovieMaterial;
    
import org.papervision3d.objects.DisplayObject3D;
    
import org.papervision3d.objects.primitives.Plane;
    
import org.papervision3d.render.BasicRenderEngine;
    
import org.papervision3d.scenes.Scene3D;
    
import org.papervision3d.view.Viewport3D;

    public class 
Gallery extends Sprite
    
{
        public var 
loader                   BulkLoader;        // Loader for the gallery xml and gallery images
        
public var viewport                   Viewport3D;        // Papervision3d components - Viewport
        
public var scene                   Scene3D;            // Papervision3d components - Scene
        
public var camera                   Camera3D;            // Papervision3d components - Camera
        
public var renderer                   BasicRenderEngine;    // Papervision3d components - BasicRenderEngine
        
public var galleryImagesCollection : Array;                // Collection of images urls
        
public var galleryPlanesCollection : Array;                // Collection of gallery planes to be added to the scene
        
public var galleryPlanes           : Array;                // Collection of scene gallery planes
        
        
private var _galleryXMLLoaded  Boolean false;    // Flag that indicates if xml is loaded
        
private var _planesHolder      DisplayObject3D;    // Holder for the gallery planes
        
private var _buttonsHolder     DisplayObject3D;    
        private var 
_imageZoomed       Boolean false;    // Flag that indicates zoomed image state
        
private var _currentPlaneIndex uint    0;        // Current plane ( first in the line ) index
        
private var _firstPlaneZ       Number  0;        // First plane z coordinate, planes shift
        
private var _planesAreMoving   Boolean false;    // Flag that indicates if planes are moving
        
        
public static const GALLERY_XML                 String 'xml/gallery.xml';    // Path to the gallery xml file
        
public static const VIEWPORT_WIDTH           Number 1400;                // Viewport width
        
public static const VIEWPORT_HEIGHT          Number 800;                // Viewport height
        
public static const GALLERY_PLANE_WIDTH      Number 400;                // Gallery plane width
        
public static const GALLERY_PLANE_HEIGHT     Number 400;                // Gallery plane height
        
public static const GALLERY_PLANE_SEGMENTS_W Number 3;                    // Gallery plane segments ( width )
        
public static const GALLERY_PLANE_SEGMENTS_H Number 3;                    // Gallery plane segments ( height )
        
public static const R                        Number 2000;                // Raggio della circonferenza su cui si dispongono le foto

        
public function Gallery() {
            
// Gallery Constructor
            // -------------------
            
loadImagesData();// Load images data
        
}

        private function 
loadImagesData():void {
            
// Loads images data from xml file
            // -------------------------------
            
        
}
        
        private function 
onGalleryLoadedevent:Event ):void {
            
// Parses gallery xml file and starts images loading process
            // ---------------------------------------------------------
            
        
}
        
        private function 
onGalleryLoadingProgressevent:BulkProgressEvent ):void {
            
// Shows loader progress info
            // --------------------------
             
        
}
        
        private function 
onGalleryLoadingErrorevent:BulkErrorEvent ):void {
            
// Shows loader error info
            // -----------------------
            
        
        
private function init3DEngine():void {
            
// Inits 3D engine. Creates viewport, scene, camera and renderer and
            // also creates and adds scene objects. Creates event listener for the
            // enter frame event for the scene rendering.
            // -------------------------------------------------------------------
            
            
addEventListenerEvent.ENTER_FRAMErender ); // Render the scene every enter frame
        
}
        
        private function 
createGalleryImages():void {
            
// Creates display objects from loaded images and updates gallery objects collection
            // ---------------------------------------------------------------------------------
            
        
}
        
        private function 
createGalleryDisplayObjectimage:String ):DisplayObject3D {
            
// Creates gallery 3D object using loaded image bitmap.
            // ------------------------------------------------------------------
            // The method returns DisplayObject3D object, and gallery do not need
            // to know if there is a plane, cube or sphere, so later I can
            // rewrite this method to create any objects needed.
            // ------------------------------------------------------------------
            
        
}

        private function 
addGalleryImages():void {
            
// Adds gallery display objects to the scene and arranges them. Later I
            // will add more arrangent strategies to this application, and all I
            // need to do is to update this method which will get the stategy name
            // as parameter.
            // --------------------------------------------------------------------
            
_planesHolder = new DisplayObject3D(); // Create holder for the gallery objects
            
scene.addChild_planesHolder );

            
galleryPlanes = new Array();

            
// Add gallery planes INIZIO
            
var flag       Number 1;
            var 
GammaRAD   Number 0;
            var 
GammaDEG   Number 0;
            var 
BetaRAD    Number Math.PI/2;
            var 
AlfaRAD    Number 0;
            var 
sinAlfaRAD Number 0;
            
            var 
int 0;
            var 
int 0;
            
            for( var 
uint 0galleryPlanesCollection.lengthi++ ) {
                var 
galleryPlane Plane galleryPlanesCollection[i] as Plane;
                
                
GammaRAD GammaRAD + ((2*Math.PI)/(galleryPlanesCollection.length)); //angolazione foto rispetto al centro
                
GammaDEG = (180*GammaRAD)/Math.PI;
                
                
galleryPlane.R*Math.cos(GammaRAD);
                
galleryPlane.R*Math.sin(GammaRAD);
                
galleryPlane.yaw(-GammaDEG);
                            
                
galleryPlanes.push_planesHolder.addChildgalleryPlane ) );
            }
        
            
// Add gallery planes FINE

            // Listen for the events only from the first gallery object
            //galleryPlane = galleryPlanes[_currentPlaneIndex] as Plane;
            
galleryPlane.addEventListenerInteractiveScene3DEvent.OBJECT_PRESSonPlanePress );
            
_planesHolder.addEventListenerInteractiveScene3DEvent.OBJECT_OVERonPlaneOvertrue );
            
//galleryPlane.addEventListener( InteractiveScene3DEvent.OBJECT_OVER, onPlaneOver );
            
galleryPlane.addEventListenerInteractiveScene3DEvent.OBJECT_OUTonPlaneOut );
        }
        
        private function 
addButtons():void{
            
// Aggiunge i pulsanti per scorrere la galleria avanti e indietro
            // --------------------------------------------------------------
            
_buttonsHolder = new DisplayObject3D(); // Create holder for the gallery objects
            
scene.addChild_buttonsHolder );
            
            var 
materiale_rettangolo_sx BitmapFileMaterial = new BitmapFileMaterial("prev.jpg");
            var 
materiale_rettangolo_dx BitmapFileMaterial = new BitmapFileMaterial("next.jpg");
            
            
materiale_rettangolo_sx.interactive true;
            
materiale_rettangolo_dx.interactive true;
            
            var 
rettangolo_sx Plane  = new Plane(materiale_rettangolo_sx200200);
            var 
rettangolo_dx Plane  = new Plane(materiale_rettangolo_dx200200);
            
            
//posizionamento PREV
            
rettangolo_sx.= -2000;
            
rettangolo_sx.450;
            
rettangolo_sx.= -1500;
            
            
//posizionamento NEXT
            
rettangolo_dx.= -1000;
            
rettangolo_dx.450;
            
rettangolo_dx.= -1500;
            
            
_buttonsHolder.addChild(rettangolo_sx);
            
_buttonsHolder.addChild(rettangolo_dx);
            
            
rettangolo_sx.addEventListenerInteractiveScene3DEvent.OBJECT_PRESSonButtonPress_Prev );
            
rettangolo_dx.addEventListenerInteractiveScene3DEvent.OBJECT_PRESSonButtonPress_Next );
        }
        
        private function 
onButtonPress_Prev(event:InteractiveScene3DEvent):void {
            
trace("precedente");
        }
        
        private function 
onButtonPress_Next(event:InteractiveScene3DEvent):void {
            
trace("successivo");
        }

        private function 
onPlanePressevent:InteractiveScene3DEvent ):void {
            
// Gallery plane mouse press event handler
            // ---------------------------------------
            
            
                
            
}
        }
        
        private function 
onPlaneOverevent:InteractiveScene3DEvent ):void {
            
// Gallery plane mouse over event handler
            // --------------------------------------
            
            
            
trace("passato sopra");
        }
        
        private function 
onPlaneOutevent:InteractiveScene3DEvent ):void {
            
// Gallery plane mouse out event handler
            // -------------------------------------
            
            
            
        
}
        
        private function 
renderevent:Event ):void {
            
// Renders the scene
            // -----------------
            
        
}
    }

Per facilità di lettura ho lasciato la dichiarazione dei pacchetti e delle variabili/costanti e anche le funzioni che richiamano i listener, se serve anche il resto dite pure