cocos-engine icon indicating copy to clipboard operation
cocos-engine copied to clipboard

Tiled文件对象层属性读取错误

Open Jerry457 opened this issue 1 year ago • 2 comments

Cocos Creator version

3.8.4

System information

Windows10

Issue description

问题 1

<objectgroup id="2" name="Object">
   <properties>
     <property name="Start" type="bool" value="false"/>
   </properties>
   <object id="32" name="SavePoint" x="480" y="2040" width="120" height="120">
     <properties>
       <property name="Start" type="bool" value="true"/>
     </properties>
   </object>
</objectgroup>

在读取属性 property 时调用 getElementsByTagName 会得到所有后代节点中的匹配元素。因此,在读取 objectgroup 的 properties 节点时,如果子节点 object 也有 properties 节点,则会将 object 的 propertie 覆盖到 objectgroup 上,建议改为querySelectorAll(':scope > properties')

问题 2 在读取 object 的 properties 时,会直接将 property 的值覆盖到 object 上。应将这些属性值存储在 properties 字段中,和其他地方保持一致。

Relevant error log output

No response

Steps to reproduce

No response

Minimal reproduction project

No response

Jerry457 avatar Aug 02 '24 12:08 Jerry457

@Jerry457 是否有测试用例 来验证这个问题?

qiuguohua avatar Aug 14 '24 00:08 qiuguohua

@Jerry457 是否有测试用例 来验证这个问题? test.zip

这个文件里object和objectgroup的都有自定义变量test,object的值会覆盖objectgroup的值,并且在object上的自定义的test2也能在objectgroup上读取到

Jerry457 avatar Aug 14 '24 08:08 Jerry457