为什么MovieMaterial加载进来的SWF里的按钮不能用呢?
netneat (2009-09-22 13:05:21)
为什么MovieMaterial加载进来的SWF里的按钮不能用呢?
文档类 test.as
package {
import caurina.transitions.Tweener;
import flash.display.*;
import flash.events.*;
import flash.net.*;
import flash.geom.*;
import org.papervision3d.cameras.FreeCamera3D;
import org.papervision3d.render.BasicRenderEngine;
import org.papervision3d.scenes.Scene3D;
import org.papervision3d.view.Viewport3D;
import org.papervision3d.materials.MovieMaterial;
import org.papervision3d.view.layer.ViewportLayer;
import org.papervision3d.materials.utils.MaterialsList;
import org.papervision3d.materials.MovieMaterial;
import org.papervision3d.objects.primitives.Plane;
import org.papervision3d.objects.*;
import org.papervision3d.events.*;
public class test extends Sprite {
private var viewport:Viewport3D;
private var renderer:BasicRenderEngine;
private var scene:Scene3D;
private var camera:FreeCamera3D;
private var _MovieMaterial:MovieMaterial;
private static var plane:Plane;
private var myload:Loader;
private var url:URLRequest;
private var xuanX:Number=0;
private var RotX:Number=0;
private static var count:Number=0;
private static var shap:Number;
public var container:DisplayObject3D;
public var _menu:Array = ["index.swf","about.swf","contact.swf"];
public function test():void {
init();
}
protected function init():void {
myload =new Loader();
url=new URLRequest(_menu[0]);
myload.load(url);
viewport = new Viewport3D(0,0,true,true);
renderer=new BasicRenderEngine;
scene=new Scene3D;
camera=new FreeCamera3D(0);
camera.moveForward(649);
container = new DisplayObject3D();
addChild(viewport);
viewport.interactive = true;
var thirdRect:Rectangle = new Rectangle(0,0, 1276, 676);
_MovieMaterial = new MovieMaterial(myload, true, true, true,thirdRect);
_MovieMaterial.interactive = true;
_MovieMaterial.doubleSided = true;
_MovieMaterial.smooth = true;
_MovieMaterial.allowAutoResize = true;
plane=new Plane(_MovieMaterial,1276,676,4,4);
//plane.addEventListener(InteractiveScene3DEvent.OBJECT_PRESS, onDown);
container.addChild(plane);
scene.addChild(container);
addEventListener(Event.ENTER_FRAME,process);
loadin();
setbtn();
}
function setbtn():void {
for (var i:int=0; i<_menu.length; i++) {
var btn_mc:MovieClip = getChildByName("btn"+i) as MovieClip;
btn_mc.buttonMode =true;
btn_mc.id = i;
btn_mc.addEventListener(MouseEvent.CLICK,change);
btn_mc.addEventListener(MouseEvent.MOUSE_OVER,Over);
btn_mc.addEventListener(MouseEvent.MOUSE_OUT,Out);
}
}
function change(event:MouseEvent):void {
url=new URLRequest(_menu[event.target.id]);
myload.load(url);
loadin();
}
function Over(event:MouseEvent):void {
}
function Out(event:MouseEvent):void {
}
public function onDown(evt:InteractiveScene3DEvent):void {
trace("onDown");
//clsin();
}
public function process(ent:Event):void {
if (count<180) {
xuanX=shap*Math.sin(count*Math.PI/180)*245;
count+=5;
} else if (count>178) {
xuanX=0;
}
plane.x=xuanX;
var _loc_3:*;
var _loc_4:*;
var _loc_5:*;
var _loc_6:Number;
_loc_3 = (stage.mouseX + this.x -100 - stage.stageWidth / 2) / 2;
_loc_4 = (-(stage.mouseY + this.y - stage.stageHeight / 2)) / 2;
_loc_3 = Math.min(Math.max(_loc_3, -10), 10);
_loc_4 = Math.min(Math.max(_loc_4, -5), 5);
container.rotationY = container.rotationY + (_loc_3 - container.rotationY) / 20;
container.rotationX = container.rotationX + (_loc_4 - container.rotationX) / 20;
_loc_5 = Math.sqrt(container.rotationX * container.rotationX + container.rotationY * container.rotationY);
_loc_5 = Math.min(20, _loc_5);
_loc_6 = 1 - 0.14 * _loc_5 * _loc_5 / 400;
container.scale = _loc_6;
/*container.rotationY = (mouseX-stage.width/2)/20;
container.rotationX = (mouseY-stage.height/2)/20;*/
renderer.renderScene(scene,camera,viewport);
}
public static function loadin():void {
count=0;
shap=-1;
plane.rotationY=-180;
plane.scaleX=0.05;
plane.scaleY=0.05;
plane.y=0;
plane.x=0;
Tweener.addTween(plane, {x:0, y:0, z:0, rotationY:-360,scaleX:1,scaleY:1, time:1.7, transition:"linear" });
}
public static function clsin():void {
trace("clsssss");
count=0;
shap=1;
Tweener.addTween(plane, {x:0, y:0, z:0, rotationY:-540,scaleX:0,scaleY:0, time:1.7, transition:"linear" });
}
}
}
index.swf 第一帧加按钮sss
sss.addEventListener(MouseEvent.CLICK,ssf);
function ssf(evt:Event):void {
trace("sss")
}