flash 3d flash3d 研究所 pv3d 共享资源  | 经典范例  | 视频教程  | 友情链接  | 联系我们
登陆 | 注册  flash 3d 研究所
讨论区





最近更新:
● ck47阁下在讨论区里 发表新主题“新手问题...”(07:49:50)
● 无语瓶阁下在教程区里 回复“《超简易papervision3D基础 ...”(18:09:44)
● payday loan阁下在教程区里 回复“《pv3d, sandy, away3d...”(05:56:23)
浏览主题:为什么MovieMaterial加载进来的SWF里的按钮不能用呢?

为什么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")
}


flash 3d 研究所 fur3
(2009-09-22 13:29:00)
很多flash自带组建就是会失效,要做按钮,只能按下面这个办法。
http://www.flab3d.com/tutorial.php?top=t16buttonmode


flash 3d 研究所 prayer
(2009-09-22 15:02:05)
恭喜flab3d重新开张!
O(∩_∩)O


flash 3d 研究所 DDM君
(2009-09-22 16:18:09)
呵呵 欢迎欢迎 终于又开了 泪流

评论人:
邮   箱: (填入邮箱,博客地址均可)

内   容: (广告和垃圾内容可能会被删除,望理解)
链接地址

验证码:(为防止机器人骚扰,请麻烦输入验证码^_^)
  

(目前需登陆方可发表)


不想添加了