Actionscript 3 Away3D中嵌套movieclips的鼠标交互

Actionscript 3 Away3D中嵌套movieclips的鼠标交互,actionscript-3,away3d,Actionscript 3,Away3d,我正在与各国建立一个地球仪。我建造了所有的球体,一切都很好。问题是要让地球看起来正确,我不得不把所有的电影剪辑放到一个大的moveclip中,然后从那里崩溃了。问题是我无法通过3D识别第二部电影。如果我将侦听器应用于整个球体,它可以正常工作(但这不起作用)。有没有办法在away3d中使用嵌套的movieclips //what works var materialMovie:MovieClip = new causticsMovie() as MovieClip; var causticsMat

我正在与各国建立一个地球仪。我建造了所有的球体,一切都很好。问题是要让地球看起来正确,我不得不把所有的电影剪辑放到一个大的moveclip中,然后从那里崩溃了。问题是我无法通过3D识别第二部电影。如果我将侦听器应用于整个球体,它可以正常工作(但这不起作用)。有没有办法在away3d中使用嵌套的movieclips

//what works
var materialMovie:MovieClip = new causticsMovie() as MovieClip;
var causticsMaterial:MovieMaterial = new MovieMaterial( materialMovie);
var sphere:Sphere = new Sphere({material:causticsMaterial, radius:300,segmentsH:18,segmentsW:26, interactive:true});
causticsMaterial.interactive = true;
view.scene.addChild(sphere);

sphere.addEventListener(MouseEvent3D.MOUSE_DOWN, NA);

//what doesn't

world_map.northAfrica_mc.addEventListener(MouseEvent3D.MOUSE_DOWN, NA);

这个问题有解决方案吗?

如果我了解flash中的3d引擎通常是如何工作的,这是不可能的。他们从原始movieclip创建纹理,然后进行变换。所以没有电影唇留下来点击

我认为有两种方法可以解决这个问题。你可以将点击位置转换成极坐标(我不确定那里的数学,但谷歌应该会有所帮助),然后找出以这种方式点击的位置


或者,你可以(可能)有第二个不可见的球体(不在舞台上,或者不是作为孩子添加的,不确定哪个会起作用),在那里你可以创建一个不同的纹理,每个国家有不同的颜色。您可以将其旋转到与可见球体相同的角度。然后,单击后,将其渲染为位图数据,并检查单击点的像素值(转换为可见球体和不可见球体上的点相同)。我认为这是两种方法中比较容易的一种,并且会有更好的结果。

Ya这就是我所知道的。我只是希望我错了。第二个解决方案是考虑到行星自转(从白天到晚上)以及围绕太阳自转,第二个方案更可行。我已经创建了世界地图球体,所以第二个解决方案是最好的解决方案。谢谢你的意见。