2015年9月6日星期日

cocos2dx骨骼动画Armature源码分析(二) - BigFengFeng

本邮件内容由第三方提供,如果您不想继续收到该邮件,可 点此退订
cocos2dx骨骼动画Armature源码分析(二) - BigFengFeng  阅读原文»

flash中数据与xml中数据关系

上篇博文从总体上介绍了cocos2dx自带的骨骼动画,这篇介绍一下导出的配置数据各个字段的含义(也解释了DragonBone导出的xml数据每个字段的含义)。

skeleton节点

1 <skeleton name="Dragon" frameRate="24" version="2.2">
  • name:flash文件名字。

  • frameRateflash帧率。

  • versiondragonbones版本号。

armatures节点

首先是armatures节点,截取armatures中的部分数据。

1 <armatures>
2 <armature name="Dragon">
3 <b name="tail" parent="body" x="45.9" y="-70.8" kX="30" kY="30" cX="1" cY="1" pX="11.5" pY="176.35" z="10">
4 <d name="parts-tail" pX="0" pY="-63.8"/>
5 </b>
6 <b name = "LegR" ... />
7 <b/>
8 ……
9 <b/>
10 </armature>
11 </armatures>

<b/>节点是一个骨骼(b是bone的缩写),<armature/>节点中含有多个<b/>,是动画的整体骨骼。如下2个图所示,整个layer和骨骼之间关系就是armature节点,红框中每一个layer就是一个b节点。

<armatures>节点为什么有多个armature节点呢?因为一个flash中可能有多个骨骼动画,每个骨骼动画对应一个armature,比如下面这个flash导出后armatures里就会包含多个armature。带有帧标签的元件会被当成一个Skeleton。

<armatures name="Dragon">name属性是元件在库中的名字(下图),也是Skeleton的名字。

b节点(armature节点的子节点)

1 <b name="tail" parent="body" x="45.9" y="-70.8" kX="30" kY="30" cX="1" cY="1" pX="11.5" pY="176.35" z="10">

骨骼信息,以第一帧信息为标准。

  • name:骨骼名字,就是TimeLinelayer名字,上图。

  • parent:骨骼父节点,上图。

  • x,y:元件旋转锚点相对于父节点原点的坐标,见下图,y方向向下为正方向。

  • kX, kY:代表skewXSkewY,一般情况2者相等,代表Rotate(旋转)大小。

  • cX, cY:代表scaleX, scaleY, 表示缩放大小。

  • pX, pY:代表pivotX, pivotY,旋转锚点相对于元件原点的坐标,下图调整了30度旋转。

  • z: 层级,最下面的layer0层,逐上递加。

d节点

骨骼中显示节点,可以理解成皮肤,一个layer中用了几个库中的元件,就会有几个<d>节点。

1 <d name="parts-tail" pX="0" pY="-63.8"/>
  • name:显示对象的名字,为在库中路径和元件名字的拼接。

跟WMI过招 - 重庆Debug  阅读原文»

其实跟WMI不打不相识,最初是因为今晚上不小心从某软件站里下载了某所谓绿色软件,Firefox被挟持首页到360上网导航了,有问题本身并不可怕,重要的是解决过程,

因此我按照正常排查问题的顺序:

1.首先在Firefox中打开about:config标签页,然后看到browser.startup.homepage==about:home,说明火狐软件内部配置并没有被改变。

2.那么就有可能是他给我安装了某个插件吗?抱着怀疑的态度我进入Firefox安全模式下查看about:addons发现并没有什么可疑的plugin被安装上。

3.那么问题就落在了程序启动参数上了,果然在Desktop和Taskbar上的Firefox图标上都被加入了后缀,可是在修改任务栏中的快捷方式的时候提示没有权限修改,那么立即找到 C:\Users\username\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar 将隐藏中的Firefox快捷方式删除,重新创建快捷方式固定到任务栏搞定~

4.如果你看到这里以为就这么容易的话,那你就大错特错了;使用任务栏上的快捷方式打开依然会跳转到首页360上网导航,右键查看快捷方式的属性又被加入了后缀参数。。。

5.难道有木马程序进程在运行使用钩子在我新增快捷方式到任务栏时触发加入后缀的事件吗?我调出任务管理器,把所有可疑的进程和服务都关了,依然不解决问题,我顿时呆了像一休一样摸了摸脑袋希望能想到些什么。

6.如果不是后台进程在运行 难道是有dll挟持了我的explore.exe吗?真要是这样的我就真的只能重装系统了哇,立刻检查了这些exe和所依赖dll的修改时间发现并没有变化,而且签名都是Microsoft的应该不会错的吧,这种最可怕的情况算是排除了。

7.解决不了,求助于万能的互联网吧,网上看到有一些人建议顺其自然就用360上网导航呗,还有些人说安装360急救箱可以修复浏览器主页,我呸**(此处省略1000字)

都是程序员,何必做的这么绝呢?不行,我坚决不认输,一定要揪住元凶!

8.找到一篇文章和我的遭遇比较类似,虽然他是被挟持到某游戏网站上,可能并不是同一个恶意组织所为,但是他说是每半个小时快捷方式被加入一次后缀,而我是每次新增快捷方式并固定到任务栏上就触发,就几乎可以判断我这个可能采用了相同的方式。文章中所提到的解决方案是安装 WMI Event Viewer:http://www.microsoft.com/en-us/download/details.aspx?id=24045然后remove或者unregister其中恶意的event,通过翻阅相关资料了解到WMI(Windows Manufacturer Identifier)是Windows系统的一个类似插件的东西,方便不同的语言或者工具、脚本程序调用统一规范的WIN API。而同样这个WMI是一项核心的Windows管理技术,WMI作为一种规范和基础结构,通过它可以访问、配置、管理和监视几乎所有的Windows资源,比如用户可以在远程计算机器上启动一个进程;设定一个在特定日期和时间运行的进程;远程启动计算机;获得本地或远程计算机的已安装程序列表;查询本地或远程计算机的Windows事件日志等等。却常常被一些程序员用来做坏事。

文章到此,顺利完美解决浏览器首页挟持的问题,希望能帮助与我遇到相同问题的人们。同样也感谢撰写那篇文章的顺利帮我解决问题。


本文链接:跟WMI过招,转载请注明。

阅读更多内容

没有评论:

发表评论