以把javaScript嵌入到swf里了

[新闻资讯] 可以把javaScript嵌入到swf里了

  • 资讯类型: 翻译
  • 来源页面: http://www.kennybunch.com/blog/2009/09/embedding-javascript-into-a-swf/
  • 资讯原标题: Embedding JavaScript into a SWF
  • 资讯原作者: Kenny Bunch
    flex 开发者应该对使用Embed元数据标签嵌入各种资源都很熟悉了,现在在flash cs4中同样可以使用元数据标签进入嵌入资源了
      好多人应该还不知道竟然可以将javaScript库嵌入到swf从而使在swf可以写html DOM,而最终部署的时候这个js文件不需要暴露出来
      这个技术其实很简单,基础就是用[Embed()]标签将js文件嵌入到库中,然后声明一个Class绑定到该资源,在实例化的时候将该引用的字符串发送javaScript的eval声明就可以,以下是一个简单的实例:
    1. JavaScript:
    2.       function hello()
    3.       {
    4.            alert("hello");
    5.       }
    复制代码
    1. package
    2. {
    3.         import flash.display.Sprite;
    4.         import flash.external.ExternalInterface;
    5.         public class EmbeddedJavaScriptExample extends Sprite
    6.         {
    7.                 [Embed(source="hello.js", mimeType="application/octet-stream")]
    8.                 private static const HelloJS:Class;
    9.                
    10.                 public function EmbeddedJavaScriptExample()
    11.                 {
    12.                         execute();
    13.                        
    14.                 }
    15.                 public function execute():void{
    16.                         if (ExternalInterface.available)
    17.             {
    18.                 // embed the JavaScript to the page
    19.                 ExternalInterface.call("eval", new HelloJS().toString());
    20.                
    21.                 // the embedded JavaScript has a function call named hello
    22.                 // now that it has been embedded to the page call it
    23.                 ExternalInterface.call("hello");
    24.             }
    25.                 }
    26.         }
    27. }

    exp 2 :  /*********************************另一个例子

    *********************************************************/ 

     

     

          js  codes:

    1. // JScript source code
    2. function kaka(str)
    3. {
    4.     alert(str);
    5. }

        AS  codes:

    1. package
    2. {
    3.         import flash.display.Sprite;
    4.         import flash.events.Event;
    5.         import flash.external.ExternalInterface;
    6.         import flash.net.URLLoader;
    7.         import flash.net.URLLoaderDataFormat;
    8.         import flash.net.URLRequest;
    9.        
    10.         /**
    11.          * ...
    12.          * @author kaka
    13.          */
    14.         public class testJS extends Sprite
    15.         {
    16.                 var loader:URLLoader = new URLLoader();
    17.                 public function testJS():void
    18.                 {
    19.                         loader.dataFormat = URLLoaderDataFormat.TEXT;
    20.                         loader.addEventListener(Event.COMPLETE, loadHandler);
    21.                         loader.load(new URLRequest("1.js"));
    22.                 }
    23.                
    24.                 function loadHandler(evt:Event):void
    25.                 {
    26.                         var s:String = loader.data;
    27.                         trace("loadHandler");
    28.                         trace(s);
    29.                        
    30.                         if (ExternalInterface.available)
    31.                         {
    32.                                 ExternalInterface.call("eval", s);
    33.                         }
    34.                        
    35.                         ExternalInterface.call("kaka", "kakaString");
    36.                 }
    37.         }
    38.        
    39. }

     

     

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值