Zurück   Flashforum > Software > 3D

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 07-01-2010, 17:37   #1 (permalink)
Alter User
 
Benutzerbild von Linowitch
 
Registriert seit: Nov 2006
Ort: München
Beiträge: 485
InteractiveScene3DEvent bei png alpha==0 unterbinden

Hallo,

ich hab folgendes Problem, und bis jetzt leider noch keine Lösung dazu finden können.

ich erstelle Planes in einer Scene mit PV3D, als BitmapMaterial dienen png's (in der Bib) die an den Rändern transparente Flächen haben, die Planes liegen verteilt im Raum, wenn ich jetzt mit der Maus über die Planes komme, habe ich ein MOUSE_OVER, ein MOUSE_OUT und ein MOUSE_CLICK, nur leider auch bei den transparenten stellen.

Gibt es eine Lösung das bei den transparenten Flächen kein Event ausgelöst wird?

hier noch der minimalquellcode
ActionScript:
  1. package src.view
  2. {
  3.     public class Main3D extends BasicView
  4.     {
  5.         //-----------------------------------------------------------------------------------------
  6.        
  7.         private var bmpDataArray:Array;
  8.         private var contentItems:Array;
  9.         private var planes:Array;
  10.        
  11.         //-----------------------------------------------------------------------------------------
  12.        
  13.         public function Main3D()
  14.         {            
  15.             this.setupBmpDataArray();
  16.             this.setupPapervision3D();     
  17.             this.setupPlanes();
  18.         }
  19.        
  20.         //-----------------------------------------------------------------------------------------
  21.        
  22.         private function setupBmpDataArray():void
  23.         {
  24.             this.bmpDataArray = new Array();
  25.             for (var i:int = 0; i < this.contentItems.length; ++i) {
  26.                 var c:Class = getDefinitionByName(this.contentItems[i].bmpName) as Class;
  27.                 this.bmpDataArray.push(c);
  28.             }
  29.         }
  30.        
  31.         //-----------------------------------------------------------------------------------------
  32.  
  33.         private function setupPlanes():void
  34.         {
  35.             this.planes = new Array();
  36.             for(var i:int = 0; i < this.contentItems.length; ++i)
  37.             {
  38.                 var bitmapMaterial:BitmapMaterial = this.createBitmapMaterial(i);
  39.                 bitmapMaterial.interactive = true;
  40.                 bitmapMaterial.doubleSided = true;
  41.                 bitmapMaterial.precise = true;
  42.                
  43.                 var plane:Plane = new Plane(bitmapMaterial);
  44.                
  45.                 plane.x = this.contentItems[i].x;
  46.                 plane.y = this.contentItems[i].y;
  47.                 plane.z = this.contentItems[i].z;
  48.                 plane.rotationY = this.contentItems[i].rotationY;
  49.                
  50.                 this.scene.addChild(plane);
  51.                
  52.                 plane.addEventListener(InteractiveScene3DEvent.OBJECT_CLICK, this.plane_objectClickHandler);
  53.                 plane.addEventListener(InteractiveScene3DEvent.OBJECT_OVER, this.planeHandler);
  54.                 plane.addEventListener(InteractiveScene3DEvent.OBJECT_OUT, this.planeHandler);
  55.                
  56.                 this.planes.push(plane);
  57.             }
  58.         }
  59.        
  60.         //-----------------------------------------------------------------------------------------
  61.  
  62.         private function createBitmapMaterial(index:int):BitmapMaterial
  63.         {
  64.             var c:Class = this.bmpDataArray[index];
  65.             var bitmap:Bitmap = new Bitmap(new c(0,0));
  66.             var bitmapMaterial:BitmapMaterial = new BitmapMaterial(bitmap.bitmapData);
  67.            
  68.             return bitmapMaterial;
  69.         }
  70.        
  71.         //-----------------------------------------------------------------------------------------
  72.         // listener
  73.         //-----------------------------------------------------------------------------------------
  74.        
  75.         private function plane_objectClickHandler(event:InteractiveScene3DEvent):void
  76.         {
  77.             trace("click");
  78.         }
  79.        
  80.         //-----------------------------------------------------------------------------------------
  81.        
  82.         private function planeHandler(e:InteractiveScene3DEvent):void
  83.         {
  84.             var index:int = this.findObjectFromPosition(Plane(e.target));
  85.             switch(e.type) {
  86.                 case InteractiveScene3DEvent.OBJECT_OUT:
  87.                     trace("out");
  88.                 break;
  89.                 case InteractiveScene3DEvent.OBJECT_OVER:
  90.                     trace("over");
  91.                 break;
  92.             }
  93.         }
  94.        
  95.         //-----------------------------------------------------------------------------------------
  96.     }
  97. }

Bin für jeden Tip Dankbar.
__________________
Gruß Linowitch
Wer glaubt gut zu sein hat aufgehört besser zu werden!

Website
Linowitch ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Papervision InteractiveScene3DEvent royal_flash ActionScript 3 0 14-02-2009 21:55
papervision3d: DAE und InteractiveScene3DEvent kakktus ActionScript 3 1 06-10-2008 12:37
Mausbewegung unterbinden chris6680 Flash MX 7 27-06-2005 11:17
hover unterbinden Gargoyle HTML und CSS 2 31-07-2003 12:05
Caching unterbinden akswift Flash 4 und Flash 5 1 04-07-2001 18:08


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:07 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele