所以,我有一个游戏,它使用了不同大小的一堆瓷砖纸,我决定编写一个可以容纳我的精神错乱的扩展级装载机。
据我所知,保存图层大小和类型的唯一位置是标记下的.oep项目文件。
<LayerDefinitions>
<LayerDefinition xsi:type="GridLayerDefinition">
<Name>Solids</Name>
<Grid>
<Width>24</Width>
<Height>24</Height>
</Grid>
<ScrollFactor>
<X>1</X>
<Y>1</Y>
</ScrollFactor>
<Color A="255" R="0" G="0" B="0" />
<ExportMode>Rectangles</ExportMode>
</LayerDefinition>
哪个好,很容易提取网格的名称,宽度和高度。我真正需要的是TYPE,它存储在LayerDefinition标签中:
<LayerDefinition xsi:type="GridLayerDefinition">
问题是,如果我尝试抓取@xsi:type属性,我会因冒号而出错。我怎么能绕过这个?如何获取.xsi:type属性?层TYPE是否存储在其他我看不到的地方?目前的进口代码:
private function loadProject():void
{
var curProject:XML = FP.getXML(TESTPROJECT);
var entry:XML;
var counter:uint = 0;
trace("Loading project");
// trace(curProject.*);
for each (entry in curProject.LayerDefinitions)
{
trace ("Grid type is: " + entry.@xsi:type);
trace ("Grid is: " + entry.LayerDefinition.Name);
}
}
产生错误:
\src\levelLoader.as(51): col: 41 Error: Syntax error: expecting rightparen before colon.
答案 0 :(得分:0)
您可以使用attribute()
方法获取与ActionScipt保留字或语法冲突的属性值。
trace("Grid type is: " + entry.attribute("xsi:type"));
这应该有用,并为您提供所需的价值。您可以在AS3参考here中查看attribute()
方法。