hey leute
ich hab nen problem und zwar gehts darum das mein movieclip nicht abgespielt wird.
ich hab 3 planes alle jeweils mit movieclips versehen
ein movieclip hat nen tween in sich und zwar wird er alpha null.
ich wollte das so haben das ich wenn ich auf ein plane klicke ein anderer plane sein movieclip abspielt.
aber es funktioniert nicht aber es kommt auch keine fehler meldung.
mein movieclip hat in sich zwei ebenen eine mit ner stop action und die andere mit dem tween
wenn ich die stop action wegmache tween er zwar jedoch tut er das egal bei was ich mache das heisst egal wo ich hinklicke er tweent los....ich wollte das aber so das er tween wenn ich auf eines der planes klicke
könnt ihr mir da helfen und mir sagen was ich falsch mache???
hier der code:
danke
PHP-Code:
package {
import flash.display.Sprite;
import flash.events.*;
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;
import org.papervision3d.scenes.Scene3D;
import org.papervision3d.render.BasicRenderEngine;
[SWF(width="2000",height="2000",backgroundColor="#000000",frameRate="60")]
public class TweenToSpatialPlanes extends BasicView {
private static const NUM_PLANES:int=3;
private static const TWEEN_TIME:Number=2;
private static const DISTANCE_FROM_PLANE:Number=200;
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;
private var p2:Plane;
/*private var p3:Plane;
private var p4:Plane;
*/
var movieMat:MovieAssetMaterial;
var movieMat1:MovieAssetMaterial;
var movieMat2:MovieAssetMaterial;
var alicia1:MovieClip = new MovieClip();
var alicia2:MovieClip = new MovieClip();
var moo:MovieClip = new MovieClip();
public function TweenToSpatialPlanes() {
setupPapervision3D();
setupBackground();
setupPlanes();
singleRender();
}
private function setupPapervision3D():void {
viewport.interactive=true;
viewport.buttonMode=true;
cameraWithSlerp.target=null;
cameraWithSlerp.slerp=4;
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<1; 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=Math.random()*5000-2500;
p1.y=Math.random()*5000-2500;
p1.z=Math.random()*2500;
p1.rotationX=Math.random()*180-90;
p1.rotationY=Math.random()*180-90;
p1.rotationZ=Math.random()*180-90;
p1.addEventListener(InteractiveScene3DEvent.OBJECT_CLICK, p1_objectClickHandler);
var p2:Plane;
var movieMat2:MovieAssetMaterial;
var moo:MovieClip = new MovieClip();
movieMat2=new MovieAssetMaterial("moo",true);
movieMat2.doubleSided=true;
movieMat2.interactive=true;
movieMat2.smooth=true;
movieMat2.animated=true;
p2=new Plane(movieMat2,200,200,2,2);
moo=MovieClip(movieMat2.movie);
scene.addChild(p2);
p2.x=-1800;
p2.z=600;
p2.y=1200;
p2.addEventListener(InteractiveScene3DEvent.OBJECT_CLICK, p2_objectClickHandler);
}
}
private function p_objectClickHandler(event:InteractiveScene3DEvent):void {
moo.gotoAndPlay("loss"); <--- this doesnt work???
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 p2_objectClickHandler(event:InteractiveScene3DEvent):void {
var p2:Plane=Plane(event.target);
cameraTarget.copyTransform(p2);
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:300,y:0,z:-1130,slerp:.1}];
tweenObject.ease=Cubic.easeOut;
tweenObject.slerp=0;
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;
}