Zurück   Flashforum > Software > 3D

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 23-05-2010, 21:02   #1 (permalink)
Neuer User
 
Registriert seit: Mar 2009
Beiträge: 54
mehrere planes als movieclip

hi leute,

ich bräuchte eure hilfe. ich wollte mehrere planes als movieclip erstellen und wenn man sie anklickt das auf dem plane rangezoomt wird. leider wird auf beide planes gleichzeitig rangezoomt.

hier ist der code, wenn jmd einen guten rat hat wäre das echt sehr nett!

Code:
package {

	import flash.display.Sprite;
	import flash.events.MouseEvent;
	import flash.display.MovieClip;

	import gs.TweenMax;
	import gs.easing.Cubic;
	import org.papervision3d.materials.MovieAssetMaterial;
	import org.papervision3d.core.math.Quaternion;
	import org.papervision3d.events.InteractiveScene3DEvent;
	import org.papervision3d.materials.BitmapMaterial;
	import org.papervision3d.objects.DisplayObject3D;
	import org.papervision3d.objects.primitives.Plane;
	import org.papervision3d.view.BasicView;

	[SWF(width="2000",height="2000",backgroundColor="#000000",frameRate="60")]
	public class TweenToSpatialPlanes extends BasicView {





		private static const NUM_PLANES:int=2;
		private static const TWEEN_TIME:Number=3;
		private static const DISTANCE_FROM_PLANE:Number=1000;

		private var cameraWithSlerp:CameraWithSlerp = new CameraWithSlerp();

		private var cameraStart:DisplayObject3D = new DisplayObject3D();
		private var cameraTarget:DisplayObject3D = new DisplayObject3D();

		private var startQuaternion:Quaternion=null;
		private var endQuaternion:Quaternion=null;
		private var currentQuaternion:Quaternion=null;

		private var p:Plane;
		private var p1:Plane;

		public function TweenToSpatialPlanes() {
			setupPapervision3D();
			setupBackground();
			setupPlanes();

			singleRender();
		}

		private function setupPapervision3D():void {
			viewport.interactive=true;
			cameraWithSlerp.target=null;
			cameraWithSlerp.slerp=0;
			cameraStart.z=-1000;
			scene.addChild(cameraStart);
		}

		private function setupBackground():void {

			var backgroundSprite:Sprite = new Sprite();

			backgroundSprite.graphics.beginFill(0x000000);
			backgroundSprite.graphics.drawRect(0, 0, width, height);
			backgroundSprite.graphics.endFill();

			addChildAt(backgroundSprite, getChildIndex(viewport));

			backgroundSprite.addEventListener(MouseEvent.CLICK, backgroundSprite_clickHandler);
		}

		private function setupPlanes():void {
			var p:Plane;
			var movieMat:MovieAssetMaterial;
			var alicia1:MovieClip = new MovieClip();




			movieMat=new MovieAssetMaterial("alicia1",true);
			movieMat.doubleSided=true;
			movieMat.interactive=true;
			movieMat.smooth=true;
			movieMat.animated=true;
			p=new Plane(movieMat,200,200,2,2);
			alicia1=MovieClip(movieMat.movie);

			scene.addChild(p);
			p.x=-1150;
			p.z=100;
			p.y=1200;

			p.addEventListener(InteractiveScene3DEvent.OBJECT_CLICK, p_objectClickHandler);



			for (var i:uint=0; i<NUM_PLANES; i++) {
				var p1:Plane;
				var movieMat1:MovieAssetMaterial;
				var alicia2:MovieClip = new MovieClip();

				movieMat1=new MovieAssetMaterial("alicia2",true);
				movieMat1.doubleSided=true;
				movieMat1.interactive=true;
				movieMat1.smooth=true;
				movieMat1.animated=true;
				p1=new Plane(movieMat1,200,200,2,2);
				alicia2=MovieClip(movieMat1.movie);

				scene.addChild(p1);
				p1.x=-950;
				p1.z=500;
				p1.y=1200;

				p1.addEventListener(InteractiveScene3DEvent.OBJECT_CLICK, p1_objectClickHandler);
			}
		}


		private function p_objectClickHandler(event:InteractiveScene3DEvent):void {
			var p:Plane=Plane(event.target);

			cameraTarget.copyTransform(p);
			cameraTarget.moveBackward(DISTANCE_FROM_PLANE);

			createTween(cameraTarget);

		}

		private function p1_objectClickHandler(event:InteractiveScene3DEvent):void {
			var p1:Plane=Plane(event.target);

			cameraTarget.copyTransform(p1);
			cameraTarget.moveBackward(DISTANCE_FROM_PLANE);

			createTween(cameraTarget);
		}



		private function backgroundSprite_clickHandler(event:MouseEvent):void {
			createTween(cameraStart);
		}

		private function createTween(displayObject3d:DisplayObject3D):void {

			cameraWithSlerp.slerp=0;

			var tweenObject:Object={};
			tweenObject.x=displayObject3d.x;
			tweenObject.y=displayObject3d.y;
			tweenObject.z=displayObject3d.z;
			tweenObject.bezierThrough=[{x:0,y:0,z:0,slerp:.1}];
			tweenObject.ease=Cubic.easeInOut;
			tweenObject.slerp=1;
			tweenObject.onUpdate=camera_updateCallback;

			startQuaternion=Quaternion.createFromMatrix(cameraWithSlerp.transform);
			endQuaternion=Quaternion.createFromMatrix(displayObject3d.transform);

			TweenMax.to(cameraWithSlerp, TWEEN_TIME, tweenObject);
		}

		private function camera_updateCallback():void {
			currentQuaternion=Quaternion.slerp(startQuaternion,endQuaternion,cameraWithSlerp.slerp);
			cameraWithSlerp.transform.copy3x3(currentQuaternion.matrix);
			singleRender();
		}

		override public function singleRender():void {
			renderer.renderScene(scene, cameraWithSlerp, viewport);
		}
	}
}


import org.papervision3d.cameras.Camera3D;
class CameraWithSlerp extends Camera3D {
	public var slerp:Number=0;
}
THA_BEST 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
planes anklickbar machen THA_BEST 3D 14 10-05-2010 20:53
Moving Planes DIDI1983 3D 1 08-08-2009 17:26
PV3D: Frage zum 'bluren' von Planes twister89 Flash CS3 Professional 9 05-10-2008 23:04
Rechengeschwindigkeit bei 25 drehenden Planes DeepSky 3D 4 14-04-2008 16:37
[Speedtest] 3D Planes André Michelle Spielkonzepte und Spieleprogrammierung 20 18-01-2005 19:06


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

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


Copyright ©1999 – 2012 Marc Thiele