Posted on Wednesday, 10th June 2009 by chris
发现了一些FlashPlayer 9 与FlashPlayer 10之间的不一样之处,很是怪异。
处理XML:
在Flash 10中将播放器设为Player 9后下面代码执行结果为
<site>
<p>world</p>
</site>
而设为Player 10后执行结果为
<p>world</p>
//以下为代码
1
2
3
var xml:XML = <config><site></site></config>;
xml = xml.site[0].appendChild("<p>world</p>");
trace(xml);
而下面这个代码的执行结果确又是一样的
//代码
1
2
3
var xml:XML = <config><site></site></config>;
xml = xml.site[0].appendChild(<p>world</p>);
trace(xml);
结果都是
<site>
<p>world</p>
</site>
有点晕,不知道是何原因。所以为了防止播放器的不一致,遇到这种appendChild()里面放置字符串的情况还是改用类似下面的写法,算Flash狠了。
1
2
3
var xml:XML = <config><site></site></config>;
xml = xml.site[0].appendChild(new XML("<p>world</p>"));
trace(xml);
这样,两个播放器也就一致了。
代码的执行顺序:
这个很有问题,如果两个代码执行顺序不一致,那可能运行的效果就完全不一致。不过两个版本确实在这方面存在差异。
如果我们只是简单地新建一个Flash文件,在里面新建一个MovieClip并且在其第一帧上增加下面的代码:
1
2
3
trace("onframe1 before call gotoandplay 10");
gotoAndStop(10);
trace("on frame 1 after call gotoandplay 10");
在其第10帧处插入下面的代码:
1
trace("now on frame 10");
把文件的设置中的播放器设成 Flash Player 9 或者 Flash Player 10 其执行结果是一致的,都是:
onframe1 before call gotoandplay 10
on frame 1 after call gotoandplay 10
now on [...]
Tags: ActionScript, Flash
Posted in ActionScript, Flash | Comments (7)