保护自己的SWF文件

Author: 飞尘 Date: 2001年 8期

    网上个人主页的斑竹们可能遇到这种情况。牺牲了好几个晚上的业余时间,熬红双眼,绞尽脑汁开发出一个自认为可震动寰宇,举世无双的Flash动画或游戏。自然是立即上传,为自己的主页添加声色。然而,不久的将来,斑竹就会发现这个作品被他人利用,或直接加入主页,或被当成一个电影剪辑加入他人的作品中。
      这还不算什么,就算我们为Internet添砖加瓦了吧。但更可气的是,有时还被D版奸商搜刮而去,做了什么“网页素才大全”,“网页十全大补”……SWF文件虽然不能像位图文件那样通过浏览器的“另存为”就轻易保存到硬盘上.但只要查看一个带有Flash动画的html文件的源代码,就能很容易找到.SWF的URL。一般是相对路径,然后通过“HTML文件的URL‘+’相对路径”得到.SWF文件的URL。这时就可直接用浏览器或下载工具来下载它。
      用什么方法能保护我们的劳动成果呢?其实MM公司已经为我们提供了现成的解决方案。
      MM在Flash的电影剪辑中设置了一个“URL”属性,这个属性同样适用于主电影。“URL”属性的值指明了该电影的.SWF文件的完整URL。如一个.SWF文件的URL是http://sir.home.sohu.com/si.swf时,它的url属性就是字符串“http://sir.home.sohu.com/si.swf”。(哎哎……别走啊,你明白了,也要给我留点面子啊!)不错,就像你已经明白的那样,我们可在作品的脚本中通过对主电影的url属性进行判断,来决定电影是否正常播放。
      如在上面si.swf中的第一关键帧上加入如下脚本:??
      if(_url ne "http://sir.home.sohu.com/si.swf")??
      {??
      gotoandstop(1);?牔?
      }??
      这样当si.swf文件放在其它地方播放时,总是停在第一帧。我们也可以只提取url属性的部分来进行判断。如我们希望si.swf文件可以被所有sohu的个人主页共享,把上述脚本改为
      var urlstr
      urlstr=string(_url)//定义一个字符串对象
      urlstr=urlstr.substr(-15,15)//提取倒数15个字符
      if(urlstr ne "sohu.com/si.swf")//进行判断
      {??
      gotoandstop(1);?牔?
      }??
      这样si.swf文件只要放在sohu的个人主页的根目录上,都能正常播放。
      如果只是不想为做D版的奸商白打工呢?呵呵,判断前四个字符是不是“http”就可以了。
      噢,对了,这几行脚本太简单了,你还可以对不尊重他人劳动成果者来点警告。如来个血淋淋的鬼头和几声尖叫……??