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





最近更新:
● payday loan阁下在教程区里 回复“《pv3d, sandy, away3d...”(05:56:23)
● bad credit payday loan阁下在教程区里 回复“《超简易papervision3D基础 ...”(05:56:13)
● payday loan阁下在教程区里 回复“《超简易papervision3D基础 ...”(05:56:12)
浏览主题:又来求教啦~

又来求教啦~
AdobeFly (2009-08-02 18:46:18)

做一个项目,应用到了PV3D,要在屏幕上显示N个 (N>20) 同样的三维模型(位置不同摆放,模型、贴图等完全一致)

考虑到.DAE文件加载很慢,所以我想用如下的思路解决问题(伪代码)

class ModelData
{
static ModelA : Collada
public static function ModelDataLoad()
{
//加载外部Collada文件并给予ModelA
}
public static function getModel()
{
return ModelA
}



主类的逻辑代码:
private model:Collada
ModelData.ModelDataLoad()
for (var i:0 i < 20;i++)
{
model = new Collada()
model = ModelData.getModel()
model.x = i * 100
scene.addChild(model)
}

可是输入的结果屏幕上只有一个模型ModelA而不是20个,请问这是何故...


flash 3d 研究所 AdobeFly
(2009-08-03 00:37:27)
自己解决了!要用.clone()方法,同时注意clone的返回值格式是DisplayObject3D不是Collada

flash 3d 研究所 DDM君
(2009-08-03 11:37:24)
^_^因为没有深度复制,所以model始终是同一个。
您的方法是正确的,没有动画通道的模型就是用.clone().
adobeFly君好样儿的!


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

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

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

(目前需登陆方可发表)


不想添加了