查看: 1553|回复: 5

控制动画报错

[复制链接]

该用户从未签到

发表于 2013-3-28 23:52:05 | 显示全部楼层 |阅读模式
animPathCallback->setPause(true);出现读取位置 0x00000050 时发生访问冲突是什么原因。谢谢

该用户从未签到

发表于 2013-3-29 07:46:28 | 显示全部楼层
animPathCallback 没初始化 就使用了

该用户从未签到

 楼主| 发表于 2013-3-29 13:08:51 | 显示全部楼层
额,初始化了啊?
osg::AnimationPathCallback* animPathCallback = new osg::AnimationPathCallback();
               
                osg::ref_ptr<osg::Group> Root1 = door1->asGroup();
                 int i = 0;

                for (i = 0; i < Root1->getNumChildren(); i++)
                {
                        animPathCallback = dynamic_cast<osg::AnimationPathCallback*> (Root1->getChild(i)->getUpdateCallback());//取到动画属性
                        animPathCallback->setPause(true);
                }

该用户从未签到

发表于 2013-3-29 14:23:17 | 显示全部楼层
没有初始化osg::AnimationPathCallback 中的AnimationPath

该用户从未签到

 楼主| 发表于 2013-3-29 23:01:57 | 显示全部楼层
想问一下,我是将3d中的动画导出来,需要初始化AnimationPath 么,我只需要控制其停止和播放。谢谢

该用户从未签到

发表于 2013-4-1 08:04:53 | 显示全部楼层
那就不需要了,我还以为是您自己初始化的数据。
osg::AnimationPathCallback* animPathCallback = new osg::AnimationPathCallback();
这句完全没必要,而且内存leak了;还有您也没有做相应的类型检测和有效类型转换检测,这里很可能就是问题的所在
  1.                 for (i = 0; i < Root1->getNumChildren(); i++)
  2.                 {
  3.                         animPathCallback = dynamic_cast<osg::AnimationPathCallback*> (Root1->getChild(i)->getUpdateCallback());//取到动画属性
  4.                         animPathCallback->setPause(true);
  5.                 }
复制代码
在这里面加上类型转换的有效判断
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表