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

今天在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

javascript调用Flash里对象的方法(函数)搞了五个小时。的更多相关文章

  1. javascript常用的Math对象的方法

    简介 Math对象是在程序编程中用于执行一些数学任务的.Math 对象并不像 Date 和 String 那样是对象的类,因此没有构造函数 Math(),像 Math.sin() 这样的函数只是函数, ...

  2. JavaScript中创建自定义对象的方法

    本文内容参考JavaScript高级程序设计(第3版)第6章:面向对象的程序设计 ECMA-262中把对象定义为:“无序属性的集合,其属性可以包含基本值.对象或者函数.”我所理解的就是对象就是一个结构 ...

  3. 在JavaScript中重写jQuery对象的方法

    jQuery是一个很好的类库,它给我们解决了很多的客户端编程,任何东西都不是万能的,当它不能满足我们的需求时我们需要对它进行重写,同时也不要影响其原有的功能或者修改其原有的功能:我现在的web应用程序 ...

  4. JavaScript (内置对象及方法)

    JavaScript中的对象分为3种:内置对象.浏览器对象.自定义对象 JavaScript 提供多个内置对象:Math/Array/Number/String/Boolean... 对象只是带有属性 ...

  5. 整理JavaScript循环数组和对象的方法

    众所周知,常用的循环语句有for.while.do-while.for-in,forEach以及jQuery中提供的循环的方法:以及ES6中提供的很多用来循环对象的方法如map, 在 Javascri ...

  6. Spring普通类/工具类获取并调用Spring service对象的方法

    参考<Spring普通类获取并调用Spring service方法>,网址:https://blog.csdn.net/jiayi_0803/article/details/6892455 ...

  7. Servlet里面一调用Dao里的某个方法

    背景: 这几天,由于项目集成的需要,我要在doFilter里调用dao层里的某些方法,可是总之报空指针,只要调用那个dao方法,就报错误.很是纳闷,网上查找了各种原因,终于让我给突破了,看来还是Jav ...

  8. Android中Webview使用javascript调用事先定义好的Java函数

    1. 首先定义好一个类,专们用于给javascript调用 public class JavaScriptInterface { // share your news public void shar ...

  9. 总结调用Flash的几种方法

    一.Adobe 提供的方法 <object width="200" height="200" classid="clsid:D27CDB6E-A ...

随机推荐

  1. KETTLE集群搭建

    KETTLE集群搭建 说明: 本文档基于kettle5.4 一.集群的原理与优缺点 1.1集群的原理 Kettle集群是由一个主carte服务器和多个从carte服务器组成的,类似于master-sl ...

  2. 《Linux课本》读书笔记 第四章

  3. 数学建模-lingo使用

    1.安装启动,软件下载地址:http://pc.xzstatic.com/2017/06/LINGO14 .zip.此为免安装版,打开后双击Lingo11.exe即可启动软件. 2.示例:某商品单位成 ...

  4. github学习步骤

    组员1:    王文政      201303011159 作业网址 :https://github.com/1246251747/3/blob/master/jjj.txt 心得: 1.  申请gi ...

  5. 思甜雅---关于qq的NABCD的模型分析

    个人连接:http://www.cnblogs.com/xiaoliulang/ 关于QQ的NABCD模型 N--Need 随着电脑的普及,人们在网络上进行交流的时间越来越多,由于现有的交流工具还不是 ...

  6. github 心得体会

     https://github.com/xu123/text 学习了很多知识感觉很有趣 git config :配置git git add:更新working directory中的文件至stagin ...

  7. a simple example for spring AOP

    /** * Created by Administrator on 2015/11/25. * a interface */public interface ArithmeticCalculator{ ...

  8. 理解java的三大特性之继承

    学习来源:http://www.cnblogs.com/chenssy/p/3354884.html default 默认权限(包权限-同一个包可以访问) private 私有(类内部可以使用,继承的 ...

  9. mybatis集成redis

    系统原生集成的Ehcache, 但是监控需要(version 2.7),Ehcache Monitor http://www.ehcache.org/documentation/2.7/operati ...

  10. MySQL: Connection Refused,调整 mysql.ini中的 max_connections

    连接相同的结构的MySQL数据库,一套库Tomcat启动正常,另一套库一直报Connection Refused. 可以断定是连接数太小了.查找mysql.ini中的 max_connections, ...