5D艺术网首页
商城
|
资讯
|
作品
|
博客
|
教程
|
论坛
登录
注册
加为好友
发短消息
来自:山东
性别:先生
最后登录:2011-01-05
http://xbzg.5d.cn/
专注于Flash+FMS开发...通过Google搜索西部之光Software
首页
|
新闻
|
话题
|
博客
|
相册
|
艺术作品
|
社交关系
|
留言板
|
社交圈
2006/02/22 | 体验AS3.0(十四)
类别(Flash)
|
评论
(0)
|
阅读(227)
|
发表于 07:02
好的,现在到了XML了。在labs site你可能看过有关E4X的东东——如何在AS中处理XML。Gordon Smith 曾说:"与现在FLASH对XML的支持作比较,E4X允许我们写更少的代码,更快地运行,因为大部分的处理可以以C++的速度完成。"太好了,让我们做一个速度测试吧。
package {
import flash.display.Sprite;
import flash.util.trace;
import flash.util.getTimer;
import flash.xml.XMLNode;
import flash.xml.XMLDocument;
public class Test extends Sprite {
public function Test() {
var employees:XML =
<employees>
<employee ssn="123-123-1234">
<name first="John" last="Doe"/>
<address>
<street>11 Main St.</street>
<city>San Francisco</city>
<state>CA</state>
<zip>98765</zip>
</address>
</employee>
<employee ssn="789-789-7890">
<name first="Mary" last="Roe"/>
<address>
<street>99 Broad St.</street>
<city>Newton</city>
<state>MA</state>
<zip>01234</zip>
</address>
</employee>
</employees>;
var employees2:XMLDocument = new XMLDocument('<employees><employee
ssn="123-123-1234"><name first="John"
last="Doe"/><address><street>11 Main
St.</street><city>San
Francisco</city><state>CA</state><
zip>98765</zip></address></employee><employee
ssn="789-789-7890"><name first="Mary"
last="Roe"/><address><street>99 Broad St.</street><city>Newton</city><
state>MA</state><zip>01234</zip>
</address></employee></employees>');
var t:int = getTimer();
for( var i:int=0; i<10000;i++){
var x:XMLList = employees.employee.(@ssn == "789-789-7890");
}
trace( getTimer() - t);
var t:int = getTimer();
for( var i:int=0; i<10000;i++){
var n:XMLNode = employees2.firstChild.firstChild;
var nFound:Array = new Array();
while( n != null){
if( n.attributes.ssn == "789-789-7890"){
nFound.push( n);
}
n = n.nextSibling;
}
}
trace( getTimer() - t);
}
}
}
我得到的结果为:
268
23
噢?如果不是我弄错的话,E4X中的XMLDocument看起来好象要比过去的XML object慢十倍左右。也许因为我用的是ALPHA版播放器的缘故吧,我倒想看看最后的正式版本结果会怎样。
不过,新的处理XML的方法确实比DOM好了许多,将XML数据加入代码中也变得容易了许多。但让我迷惑不解的是,为什么代码中的字符串仍被限制在同一行呢?如果能分行的话不是更好吗?
0
评论
Comments
日志分类
首页
[186]
Flash
[84]
FMS
[41]
AIR
[2]
ASP
[11]
作品区
[12]
其他
[36]