AS代码2.0:针对FlashPlayer7

2008-04-02 10:44:53来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折


  假如您现有的脚本是针对Flash 6或更早版本的播放器编写的,但又想针对 Flash 7播放器发布,您可能需要修改您的脚本,以便他们符合 Flash 7播放器的执行需要并能按设计思路工作。下面我们就介绍这些相关知识。

  Flash Player 7比以前的Flash播放器支持更多的动作脚本命令,能够使用这些命令来编写更稳健的脚本。但是,假如在现有的脚本中使用了这些命令,并针对Flash 7播放器发布该脚本,他也许不能正确工作。例如,假如您有一个脚本,其中有一个函数名使用了Error,该脚本也许能够正确编译,但并不能按照Flash 7播放器的方式运行,因为在现在的动作脚本语言中Error是个内建类(因此,Error是个保留字)。能够通过修改脚本,把Error函数名改为其他名字来解决,如ErrorCondition。

  Flash 7播放器也有了很多变化,这些变化影响到一个SWF文档怎样访问另一个SWF文档,怎样载入外部数据,怎样访问本地配置和数据(如隐私配置和本地永久共享对象)。最后,一些现有的特性也已改变。

  假如您现有的脚本是针对Flash 6或更早版本的播放器编写的,但又想针对Flash 7播放器发布,您可能需要修改您的脚本,以便他们符合Flash 7播放器的执行需要并能按设计思路工作。下面我们就介绍这些相关知识。

  一、遵从ECMA-262 Edition 4方案

  Flash 7播放器作了一些修改,使之更加符合 ECMA-262 Edition 4方案。在动作脚本语言2.0中,除了能够使用基于类的编程技术外,也增加了其他特性,某些行为也已修改。当您针对Flash 7播放器发布且使用动作脚本语言2.0时,您能够不把一种对象类型指派给另一个。这些功能不需要您更新现有的脚本,但是,假如您针对 Flash 7播放器发布发布您的脚本,您能够使用这些功能,然后继续修订和改进。

  和上面提到的变化不同,下表列出的变化(其中也有一些不完全遵从ECMA 方案)可能导致现有脚本的执行结果和以前不同。假如您在针对 Flash 7播放器发布的现有脚本中使用了这些特性,请查看一下这些变化,确保您的代码能够按照设计计划运行,或确定是否需要重写代码。特别是,计算 undefined(未定义)项的结果在某些情况下是不同的,您应该在针对Flash 7播放器发布的脚本中初始化任何的变量。

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  
针对Flash 7播放器发布的SWF文档针对早期Flash播放器发布的SWF文档
支持区分大小写(只是大小写不同的变量名被解释为不同的变量)。这种变化也影响用#include指令载入的文档和使用 LoadVars.load()命令载入的外部变量。不区分大小写(只是大小写不同的变量名被解释为相同的变量)。
在数值上下文中计算undefined项的返回结果是NaN。在数值上下文中计算undefined项的返回结果是0。
myCount =1;

  trace(myCount); // NaN
myCount =1;

  trace(myCount); // 1
当undefined项被转换为字符串时,其结果是undefined。当undefined项被转换为字符串时,其结果是""(空字符串)。
firstname = "Joan ";

  lastname = "Flender";

  trace(firstname middlename lastname);

  // Joan undefinedFlender
firstname = "Joan ";

  lastname = "Flender";

  trace(firstname middlename lastname);

  // Joan Flender
当把字符串转换为逻辑值时,假如该字符串的长度>0,其结果为true;假如该字符串为空串,其结果为false。当把字符串转换为逻辑值时,首先把他转换为数值,假如该数值非0,其结果为true,否则为false。
当配置数组的长度时,只有有效的数字字符串可配置长度。例如,"6"起作用,但" 6"或"6xyz"不起作用。当配置数组的长度时,即使是个畸形的数字字符串也可配置长度:
my_array=new Array();

  my_array[" 6"] ="x";

  trace(my_array.length); // 0

  my_array["6xyz"] ="x";

  trace(my_array.length); // 0

  my_array["6"] ="x";

  trace(my_array.length); // 7
my_array=new Array();

  my_array[" 6"] ="x";

  trace(my_array.length); // 7

  my_array["6xyz"] ="x";

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇: 研发类似微软中国导航条的控件

下一篇: Flash中实现JS的图片滚动效果