Category

Archive for the 'Flash' Category

AS 中替换字符的方法

( Flash )

在flash actionscript 中替换一个字符串中的特定字符有许多方法,下面介绍两种:

一、最简单的方法,使用字符串以特定字符拆分然后用要替换的字符重组。代码如下:

  1. function replace(s:String,o:String,n:String){ //字符替换函数 把s中o替换成n
  2.  return s=s.split(o).join(n);
  3. }

二、遍历替换。代码如下:

  1. /**
  2.      *=============================================
  3.      * replaceString (n : String, se : String, re : String)
  4.     * 参数:1.n :要进行处理的字符串;
  5.         *         2.se:查找的字符;
  6.     *         3.re:要替换的字符;
  7.   * 说明:将字符串中的某些字符替换成其他字符。
  8.      * =============================================
  9.     */
  10.  function replaceString (n : String, se : String, re : String) : String{
  11.        var nArr = n.split (se);
  12.        var r : String = “”;
  13.            var nArrl = nArr.length;
  14.          for (var i = 0 ; i < nArr.length - 1; i ++)
  15.          {
  16.              r = r + nArr [i] + re;
  17.        }
  18.          if (nArrl % 2 == 0)
  19.          {
  20.              r = r + nArr [nArrl - 1]
  21.         } else if (nArrl == 1)
  22.         {
  23.             r = n;
  24.                         }
  25.          //
  26.         return r;
  27.      }

Internet Explorer 7(IE7)不支持getURL()弹窗调用

( Software and Flash )

  Internet Explorer 7(IE7) RC1 版本发布了,正好本本是正版的WINXP,可以通过正版校验,故下载了一个IE7装上。平时做WEB应用开发,也顺便测试一下IE7的兼容性。
  几天使用感觉还可以,可是觉得IE7的TAB(标签)式浏览,不像M$鼓吹的那么好,在打开较多页面时候,IE很容易停止响应,看来还是不很稳定。在做一个FLASH应用的时候发现了一个严重的BUG,就是在FLASH里使用getURL(”http://www.sina.com.cn/”,”_blank”)的时候,IE7无法在新标签页中打开链接地址,只能在本页或本帧刷新,效果和getURL(”http://www.sina.com.cn/”,”_self”)相同,GOOGLE了一下,发现各种语言的BUG报告,看来全世界的WEBdeveloper都很郁闷。
  还有就是IE7的容错性变差(其实是好事,和FireFox更像了,严格按标准操作),胡乱写代码的同学要注意了,当心在IE6中的“好”页面在IE7里一团糟,IE7可不给面子哦。

再谈flash调用Javascript

( Javascript and Flash )

Flash调用页面中的javascript函数在做一些flash操作页面DOM的应用的时候很有用,在flash actionscript中调用javascript中的函数方法有两个:

  • getURL(”javascript:checkit()”)
  • FSCommand(”checkit”,id);
  • 第一种:getURL()实际上的原理相当于HTML中<a href=”javascirpt:alert(’foobar’);”></a>的调用javascript的方式,相当于一个对本页的一个http请求。
    第二种:FSCommand(”checkit”,id);原理类似于HTML中<a href=”#” onclick=”checkit(1)” ></a>,相当于直接调用。

    这两种方法最大的不同就是前者向浏览器发送新的HTTP请求,后者没有。这样就带来了一个不可预知的问题,IE和firefox对于第一种的请求方式不同。在IE中浏览器会中断当前的所有请求,来响应来自flash getURL新的请求,这会带来什么问题呢?如果页面还没有下载完,正在下载的东东(图片,外部脚本,外部样式)都会停止,导致页面下载不全。这种情况在firefox中不会出现,因为处理方式不同,FF不会把这个当成一个新的HTTP请求,因为请求的地址是一段JS调用,(IE真的很垃圾,纯属个人观点,FFer万岁)。
    所以建议如果不能确定flash是在页面下载完成之后才进行JS调用,那么就使用FSCommand吧。
    getURL will terminate all of current http requests in internet explorer.FSCommand is ok, so use FSCommand instead of getURL