zoukankan      html  css  js  c++  java
  • javascript调用Flash里对象的方法(函数)搞了五个小时。

    搞了几个小时后,才发现,之前走的路是错的。

    今天在Firefox浏览器上测试一个javascript调用Flash中的一个对象的方法时遇到问题了,

    一搞就整整搞了一个下午。

    我记得之前我用Flash8的时候没有遇到过这样的问题。

    我的程序大概是这样,我用Flash制作了一个菜单,默认情况下,打开网页时,这个菜单隐藏,当鼠标放在一个小图标上后,这个菜单显示出来,并且会根据当前的网页数据情况,显示菜单中的几项,同时隐藏几项不需要显示的菜单项。

    我在Flash中使用ExternalInterface.addCallback 注册了一个方法名叫:setMenuItemVisible(b:Boolean)

    打算在网页中的javascript中调用。

    可谁知程序写好后,在IE浏览器下运行一切正常,但在Firefox上老是提示错误:

    无法在javascript中调用 setMenuItemVisible() 方法。

    我开始到百度去搜索,找了一个多小时后,终于找到了一篇文件:

    http://www.coolcode.cn/show-291-1.html

    我把这篇内容在我的百度空间收藏了一下:
    http://hi.baidu.com/personnel/blog/item/8c04cd119effe919b8127b47.html

    原来因为浏览器的原因,如果在IE以外的大多数浏览器上执行javascript调用Flash中的函数时,一般要在 window.onload=function(){载入Flash}
    不然,在Flash中注册的一些对外的函数将无法在javascript中调用。

    本来以为到这里原因找到了,可是接下来又遇到了一个非常头痛的问题。

    因为我的Flash是先隐藏,在javascript触发事件后,才显示,我使用的是

    flash.style.display="none";
    flash.style.display="";

    在Firefox上测试的时候发现,当在这显示和隐藏两种状态下转换的时候,每次Flash都会重新载入一次,真晕!

    后来又到百度搜索了一下,找到了这么一篇文章,现在我收藏了一下:

    http://hi.baidu.com/personnel/blog/item/a8f40fb3025decaed8335a43.html

    最终重写了Flash代码,因为之前的代码逻辑上在Firefox上不是好办法。

    2009-08-12

  • 相关阅读:
    Spark SQL学习笔记
    《空空》陈粒
    支持向量机
    p.Value越显著,X变量越重要嘛?
    回归的武林绝学
    Neural Collaborative Filtering论文笔记
    make 学习笔记
    『并发包入坑指北』之阻塞队列
    线程池中你不容错过的一些细节
    利用策略模式优化过多 if else 代码
  • 原文地址:https://www.cnblogs.com/personnel/p/4582979.html
Copyright © 2011-2022 走看看