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





最近更新:
● ck47阁下在讨论区里 发表新主题“新手问题...”(07:49:50)
● 无语瓶阁下在教程区里 回复“《超简易papervision3D基础 ...”(18:09:44)
● payday loan阁下在教程区里 回复“《pv3d, sandy, away3d...”(05:56:23)
浏览主题:【求教】请问怎么对CUBE的六个面分别做鼠标交互?

【求教】请问怎么对CUBE的六个面分别做鼠标交互?
wusaki (2009-05-05 00:12:42)

【问题描述1】其实也很明白了吧,分别用六个不同的MovieMaterial做正方体的六个面,想每个面都能单独进行鼠标交互,应该怎么做呢?


【问题描述2】如果其中有面镶嵌有按钮,那又该怎么做呢?


flash 3d 研究所 DDM君
(2009-05-05 07:01:28)
1)cube的参数不是个materialList嘛,把其中包含的每个material的interactive设成true就可以了。
2)可以参考此思路
http://flab3d.com/tutorial.php?top=t16buttonmode


flash 3d 研究所 wusaki
(2009-05-05 11:11:29)
那我想问, 我对其中某一个面(例如是"front"面,该面对应的MovieMaterial叫M1,该M1指向的MC叫MC1)
如果要添加鼠标侦听的话,我是应该对什么添加侦听事件?

flash 3d 研究所 DDM君
(2009-05-05 17:54:56)
InteractiveScene3DEvent.OBJECT_CLICK听诊这个事件正确吗?

flash 3d 研究所 wusaki
(2009-05-05 21:19:41)
...我想问的就是,如果要侦听其中一个面,究竟CLICK的是:
A.整个长方体
B.长方体中的其中一个面
C.该面的材质
D.该面材质所属的MC

上的哪个?

(OBJECT_CLICK 应该理解为对一个物体整个点击的吧……)

flash 3d 研究所 老鼠赛跑
(2009-05-05 21:59:04)
sandy3d的教程代码就有这个:)

flash 3d 研究所 wusaki
(2009-05-05 22:04:40)
是么 在哪在哪?~

flash 3d 研究所 老鼠赛跑
(2009-05-06 01:25:22)
http://www.flashsandy.org/tutorials/3.0/sandy_cs3_tut18

flash 3d 研究所 DDM君
(2009-05-06 08:12:47)
这个可以具体写出程序来试试嘛,强大程序员就是在不断的尝试中成长的嘛,呵呵。

flash 3d 研究所 sliz
(2009-05-06 12:33:18)
最经典的做法就是遍历正方体的faces

flash 3d 研究所 wusaki
(2009-05-06 14:22:34)
求源程序

flash 3d 研究所 netsnower
(2009-05-15 10:29:47)
cube.addEventListener(InteractiveScene3DEvent.OBJECT_CLICK, onCubeClick);

function onCubeClick(evt:InteractiveScene3DEvent):void {
     trace("点击了立方体");
     trace(evt.face3d.material);
}

能够trace到贴图的名称,我用的图片贴图,可以得到图片地址。
我想到的就是利用这个图片地址来实现判断用户点击了哪个面了……
应该有更好的办法吧。

flash 3d 研究所 DDM君
(2009-05-15 17:52:56)
netsnower君这个方法很简洁,很有效。很不错的哟^_^!!

flash 3d 研究所 ccinclude
(2009-06-15 16:50:40)
bfm1=new BitmapFileMaterial('m1.png');
                 bfm2=new BitmapFileMaterial('m2.png');
                 bfm3=new BitmapFileMaterial('m3.png');
                 bfm4=new BitmapFileMaterial('m4.png');
                 bfm5=new BitmapFileMaterial('m5.png');
                 bfm6=new BitmapFileMaterial('m6.png')
                 ;
                 bfm1.interactive=true;
                 bfm2.interactive=true;
                 bfm3.interactive=true;
                 bfm4.interactive=true;
                 bfm5.interactive=true;
                 bfm6.interactive=true
                 
                 
                 ;
                 cube=new Cube(new MaterialsList({front:bfm1,back:bfm2,right:bfm3, left:bfm4, top:bfm5, bottom:bfm6}),400,400,400,4,4,4);
                 //cube=new Cube(new MaterialsList(listArr),500,500,500,3,3,3);
                 cube.rotationX=30;//先转个角度比较好测试效果。
                 cube.rotationY=30;//先转个角度比较好测试效果。



                 scene.addChild (cube);

                 cube.addEventListener (InteractiveScene3DEvent.OBJECT_CLICK, onCubeClick);
                 
           }
           function onCubeClick (evt:InteractiveScene3DEvent):void {
                 trace ("点击了立方体");
                 trace (evt.face3d.material);
           }

我的是这样写的,可是点击的时候,没有反应的。。

flash 3d 研究所 DDM君
(2009-06-16 06:47:35)
代码咋一看没什么问题,这句-trace ("点击了立方体");-都trace不出来吗?
png是透明图片吗,换成jpg也是一样的结果吗?如果整体贴一张图这样写all:bfm1能trace出什么结果呢?

flash 3d 研究所 wusaki
(2009-06-17 17:52:43)
回想起来 我那时候做了个专门生成立方体的类

把六个PLANE组成一个DisplayObject3D.......
效果很奇怪的: www.wusaki.cn 的主页

真落后啊……

flash 3d 研究所 DDM君
(2009-06-17 19:00:11)
呵呵,没事的呀,很不错的,达到目的就行~wusaki君不错的!

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

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

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

(目前需登陆方可发表)


不想添加了