Adobe建议在Flex Hero移动应用程序中将ActionScript用于外观和ItemRenderer。我的印象是MXML被编译为ActionScript。

  • 当我在MXML中声明一个组件时,幕后到底发生了什么?
  • as3创建的对象与MXML创建的对象之间到底有什么区别?
  • 如果我将MXML组件转换为as3类(即添加每个子代,并在代码中而不是在声明性MXML语法中手动设置每个子代的每个属性),我是否有收获?

  • (目前,我没有要测试的实际设备,并且在将MXML ItemRenderers用于包含数百个项目的List时,台式计算机上的性能不会降低。)

    最佳答案



    你在乎正确。 MXML被编译成ActionScript。您可以使用keep编译器参数来查看此ActionScript。可能会令人费解。手工编写的代码更加优雅。我想这就是为什么Adobe告诉我们将AS用于移动设备外观。



    如果您是指内存中的对象,则没有区别。 MXML组件是类,就像ActionScript组件一样。但是,如果使用MXML生成ActionScript,则正在运行的实际组件具有不同的代码库。



    您可以更精细地控制组件的工作方式和操作方式。我为InsideRIA撰写了有关此确切主题的文章:http://insideria.com/2010/05/7-reasons-to-write-in-actionsc.html



    需要澄清的是,您意识到基于列表的类仅呈现屏幕上的内容,对吧?因此,即使您的列表中有数百个项目,也很可能一次只显示5-10。这意味着仅创建5-10个渲染器。在列表中滚动是模拟的,不是真实的。渲染器仅更改其数据。无论如何,我要说明的一点是,包含数百个项目的列表应该与包含十个项目的列表或包含千个项目的列表具有相同的效率。我希望您会在台式机和设备上看到非常不同的性能。

    关于apache-flex - MXML和移动版ActionScript之间的真正区别是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4510196/

    10-12 17:09