`
xHolic
  • 浏览: 1677 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

利用AS3 ExternalInterface 实现的特殊效果

阅读更多

起因:那啥~ 某天闲来无事  答应为某人做个flash导航~

要求: 1.flash 尽可能的小

       2.可以编辑导航内容
      
       3.flash 背景透明
 
       4.onmouseover 背景色块还要有变化

       5.…

综上选择了 AS3 + JS 的组合

 

构想:flash尽量小? 采用背景图片与flash分离方式

          可编辑?外部传值

          flash透明 背景还要有onmouseover 效果? 用AS3调用JS 操作DOM

 

成品:http://www.iding360.com/index4.html


原理:利用 AS3  ExternalInterface 接口与 JS通信

          用坐标轴 计算得出 onmouseover 元素

初始化参数如下:

var op={
            width:1024,               //flash 宽度
            height:530,               //flash 高度
            target:'new',              //tatget 不解释你懂的
            delay:0.5,                  //动画延迟 时间单位 秒
            autoMove:false,         //是否自动运行动画
            img:[[imgurl,href,x,y]]  //展示图片数组 
        }

与此同时 JS端 并行加载 背景图片中…

代码如下:

var BgImg = new Image();
  
    BgImg.onload = function()
    {
         /*
              生成色块、设置动画 

        */
         setTimeout(function()
        {
                flash=document["flashUpImg"]||window["flashUpImg"];
                if( FlashReady) //验证flash 是否加载完成 (如何验证?
                {
                        if(flash.jsMove())return; // 初始化设置了autoMove:false 所以这里手动调用
                 }
                setTimeout(arguments.callee,10);


         },10);
    }

 

此效果 主要 AS3 程序:

stage.addEventListener(MouseEvent.MOUSE_MOVE,MouseMove);   

 

public function MouseMove(event:Event):void {
           
          ExternalInterface.call("Flash_MouseMove",stage.mouseX,stage.mouseX);//flash调用js中的方法
  }

 

主要JS函数:

function Flash_MouseMove(x,y) //鼠标移动函数
{  
    var d = Math.floor(x/barWidth);
    if(d==nowDiv)return;   
    $animate( pc[nowDiv], { 'marginTop':{from:'3px', to:0}, 'opacity':{from:1,to:0.8} }, 150);   
    $animate( pc[d],      { 'marginTop':{from:0, to:'3px'}, 'opacity':{from:0.8,to:1} }, 150);
    nowDiv = d;
   
}

 

       最终效果 :http://www.iding360.com/index4.html

 

       ps:1. 为IE6-7  写了不同动画效果

            2. 顺便吐槽 IE6 的背景闪烁 BUG

 

0
0
分享到:
评论

相关推荐

    as3.0利用ExternalInterface与js交互的播放器

    在本文中,我们将深入探讨如何在AS3.0(ActionScript 3.0)中使用ExternalInterface类与JavaScript进行交互,特别是在实现一个自定义播放器的场景中。这个主题是针对那些希望在网页中集成Flash内容并与网页的...

    AS3与C#交互,有返回值

    首先来看AS3侧的实现,代码中使用了`ExternalInterface`类来实现与外部(这里指C#)的交互。 ```as3 import flash.external.*; // 注册回调函数 ExternalInterface.addCallback("c2flash", c2flash); // 定义回调...

    ExternalInterface

    ### ExternalInterface:构建Flash与外部世界桥梁的关键技术 在深入探讨`ExternalInterface`之前,我们首先需要理解其在Adobe Flash平台中的核心作用。`ExternalInterface`是ActionScript中一个极其重要的类,它...

    Flash as3调用外部AS脚本

    在AS3中,我们还可以通过`ExternalInterface`类与JavaScript进行通信,这对于实现Flash与网页的交互非常有用。如果你的外部脚本是JavaScript,你可以使用`ExternalInterface.addCallback`来注册一个AS3函数,然后在...

    AS3与JS通信

    AS3代码中,我们可以使用`flash.external.ExternalInterface.addCallback`函数注册一个方法供JavaScript调用,同时在JavaScript中通过`ExternalInterface.call`来调用AS3的方法。这样,AS3可以向JS暴露功能,反之...

    Flash as3 cookie 操作实例源码

    - 在服务器端获取Cookie后,可以通过XMLSocket或ExternalInterface与AS3通信,将Cookie传递回来。 3. **删除Cookie**: - 删除Cookie是通过设置过期日期到过去来实现的。例如: ```as3 var removeCookieHeader:...

    air内嵌网页 as3

    3. AS3回调:在网页中,可以定义一个全局函数并暴露给AS3,然后在AS3中调用这个函数,实现回调机制。 ```javascript window.external.myCallback = function(data) { // 在这里处理AS3回调的数据 }; ``` ```...

    AS3获取JS回传值

    总结来说,AS3与JavaScript的交互通过`ExternalInterface`类实现,允许它们之间进行方法调用和数据交换。这种方法在动态内容更新、用户交互以及Flash与服务器通信等方面非常有用,是构建富互联网应用程序(RIA)的...

    flex与js交互 关于ExternalInterface使用的小例子

    JavaScript,另一方面,是Web前端的标准脚本语言,用于实现动态网页效果。当这两者结合时,可以实现跨平台的动态交互,为用户提供更加丰富的用户体验。 标题“flex与js交互 关于ExternalInterface使用的小例子”...

    Flash(AS3)和C#之间的相互函数调用(例子)

    本示例探讨了如何在Adobe Flash ActionScript 3 (AS3)与Microsoft C#之间实现函数的相互调用,这通常涉及到两种技术的集成,如Unity与Flash或独立Flash应用与桌面应用的交互。以下是关于这个主题的详细解释。 1. **...

    VC2005和Flash AS3通信

    在AS3中,我们可以创建一个全局的ExternalInterface,该接口允许AS3代码与JavaScript或宿主环境(如VC++)进行通信。在AS3代码中,我们需要声明要暴露给外部调用的函数,例如: ```actionscript import flash....

    C#winform与as通信

    4. **AS调用C#方法**: AS3通过ExternalInterface调用C#方法,需要在C#代码中实现JavaScript互操作。可以使用WebBrowser控件的`ObjectForScripting`属性设置一个公共对象,该对象的方法将可供AS3调用。这些方法应该...

    as3 与js相互通信

    3. **跨域通信**:在某些情况下,利用AS3与JS通信可以绕过浏览器的同源策略限制,实现跨域数据获取。 4. **游戏交互**:游戏中的得分、状态等信息可以实时更新到网页上,提供更好的用户体验。 5. **API集成**:将...

    as2/3与js相互调用实例 源码

    AS3中,与JavaScript的交互更为完善和安全,它同样使用`ExternalInterface`类。AS3的`addCallback`方法和`call`方法分别用于设置可从JS调用的函数和从AS3调用JS函数。与AS2不同,AS3要求在发布时明确启用`...

    As3完全自学手册例子.rar

    10. **外部接口**:AS3可以与JavaScript进行交互,通过`ExternalInterface`类调用网页中的JavaScript函数或接收来自JavaScript的消息。 这本自学手册例子应该包含了一系列的实践项目,通过这些例子,你可以逐步理解...

    AS3与JaveScript之间的通讯视频讲解

    本视频教程将深入探讨如何实现AS3与JavaScript之间的通信。 1. **跨域策略**: 在AS3与JavaScript通信时,由于同源策略的限制,如果Flash内容和HTML不在同一个域名下,必须设置跨域策略。在AS3中,可以通过`...

    delphi通过ExternalInterface与flash交互

    ExternalInterface在我看来就是flash为了外部程序的调用所声明的接口。看到论坛里有好多人问但是回答的就不是很多,就把自己做的一个简单的例子放上来.写的不好,希望能抛砖引玉,大侠勿拍!!这个是里面用到的flash...

    FLEX通过AS3与FLASH交互

    通过上述方式,开发者可以利用FLEX的强大UI设计能力和AS3的高级编程特性,结合FLASH的动画优势,创造出功能丰富且具有出色视觉效果的RIA应用。理解并熟练掌握FLEX、AS3与FLASH之间的交互,对于提升Web应用的用户体验...

    AS3.0与JS交互

    ExternalInterface.addCallback("jsCallAs3", as3Function); } ``` 在JavaScript中,你可以像调用任何JavaScript函数一样调用`as3Function`: ```javascript var result = document.getElementById('...

    FLASH CS3(AS3)和JS之间通信

    标题“FLASH CS3(AS3)与JS之间通信”涉及的是两种主要的Web技术——Adobe Flash(使用ActionScript 3,简称AS3)和JavaScript之间的交互。这两种技术在Web开发中各自发挥着重要作用,Flash主要用于动画和多媒体内容...

Global site tag (gtag.js) - Google Analytics