Zurück   Flashforum > Software > 3D

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 17-04-2009, 18:24   #1 (permalink)
Neuer User
 
Registriert seit: Jan 2009
Beiträge: 13
PV3D Plane MouseEvent.CLICK

Guten Tag

Ich habe auf meiner Bühne ein Plane welches sich um die eigene Achse dreht nun möchte ich wenn man auf das Plane klickt was passiert... ich habe da auch einen Lösungsansatz leider funktioniert dieser nicht... :-/
die Eigenschaft(Variable) container ist immer null was mache ich falsch?

Mein Code:
Code:
package{
	
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.MouseEvent;
	import flash.utils.Dictionary;
	
	import org.papervision3d.cameras.Camera3D;
	import org.papervision3d.materials.*;
	import org.papervision3d.objects.primitives.Plane;
	import org.papervision3d.render.BasicRenderEngine;
	import org.papervision3d.scenes.Scene3D;
	import org.papervision3d.view.Viewport3D;

	public class PV3D extends Sprite
	{
		private var viewport:			Viewport3D;
		private var scene:				Scene3D;
		private var camera:				Camera3D;
		private var material:			BitmapFileMaterial;
		private var primitive1:			Plane;
		private var renderer:			BasicRenderEngine;
		private var container:			Sprite;
		
		public function PV3D():void
		{
				
			//viewport = new BasicRenderEngine(width, height, scaleToStage, interactive);
			viewport = new Viewport3D(550, 400, false, true);
			addChild(viewport);
			
			//instantiates a Scene3D instance
			scene = new Scene3D();
			
			//instantiates a Camera3D instance
			camera = new Camera3D();
			
			//renderer draws the scene to the stage
			renderer = new BasicRenderEngine();
			
			//BitmapFileMaterial, doubleSided draws the color on both sides of the geometry normals
			material = new BitmapFileMaterial("../img/pic.jpg");
			material.doubleSided = true;

			
			//primitive = new Plane(material applied to object, width, height, wSegments, hSegments);
			primitive1 = new Plane(material, 800, 600, 5, 5);
			
			container = primitive1.container;
			
			container.buttonMode = true;
			
			container.addEventListener(MouseEvent.CLICK, clicker );
			
			scene.addChild(primitive1);

						
			//set up enterFrame event
			addEventListener(Event.ENTER_FRAME, onEnterFrame);
			
			
			//define enterFrame Method, render the PV3D Scene and animate the primitive
			function onEnterFrame(e:Event):void
			{				
				primitive1.rotationY -= 1;
				renderer.renderScene(scene, camera, viewport);
			}
		}
		
		public function clicker ():void
		{
			trace ("Click");
		}
	}
}
yanu2 ist offline   Mit Zitat antworten
Alt 17-04-2009, 20:20   #2 (permalink)
ur leiwand oida
 
Benutzerbild von l_ch
 
Registriert seit: Sep 2001
Ort: plagwitz/jumeirah lake towers
Beiträge: 1.660
normalerweise hängst du direkt an das DisplayObject3D den listener. dazu muss aber
PHP-Code:
material.interactive true
gesetzt werden.
__________________
and now for some reklame
________________
günstige kontaktlinsen
l_ch ist offline   Mit Zitat antworten
Alt 18-04-2009, 14:34   #3 (permalink)
Neuer User
 
Registriert seit: Jan 2009
Beiträge: 13
Danke l_ch

die Zeile und dein Komentar hat mich auf neue Ansätze gebracht und ich konnte es so umsetzen wie ich es wollte :-D

Danke viel mals!
yanu2 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



Alle Zeitangaben in WEZ +1. Es ist jetzt 13:29 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele