java 嵌入flash_在各种浏览下html嵌入flash/flex以及flex和java相互调用的简单例子

在各种浏览下html嵌入flash/flex以及flex和java相互调用的简单例子

JAVA参考代码:

functiontestPageInit(){

alert(“hello flash”);

var myFlashMovie=window.document[“myFlashMovie”];

var dataStr=”10,20,30”

myFlashMovie.setTestValue(dataStr);

}

function changePageTitleName(){

document.title=”Flex Changed the Title”;

}

codebase=http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab

id="myFlashMovie" width=”100%” height=”100%” type=”application/x-oleobject”>

width=”100%” height=”100%” type="application/x-shockwave-flash"

play=”true” name="myFlashMovie"

id="myFlashMovie" align=”middle” bgcolor=”#FFFFFF”

quality=”high”

flashvars=” οnlοad=testPageInit”

loop=”false”

wmode=” transparent”

allowScriptAccess=”sameDomain”

FLEX参考代码:

Layout=”absolute”>

private var _testValue:String;

private function init():void{

ExternalInterface.addCallback(“setTestValue”, setTestValue);

}

public function setTestValue(str:String):void{

_testValue= str;

}

private function callJavascript():void{

var JSFunctionName:String=”changePageTitleName”;

ExternalInterface.call(JSFunctionName,””);

}

注意事项:

1.html嵌入flex调用在javascript中调用flex方法的例子流程

上面举的例子的功能是通过外面传个值来改变FLEX内部一个变量的值

首先html页面加载页面元素,将object加载进来,加裁object后通过onload方法自动调用javascript方法testPageInit();

其次在testPageInit()方法里我们要调用对象ID为myFlashMovie的flex内部方法,要获取object的对象通过用document.getElementById(“myFlashMovie”)这个方法来获得,但是考虑到跨浏览器的问题我们采用以下任意一种方式来获取ID,

一是window.document[“myFlashMovie”](在IE,FF,chrome,opera,safari等都适用)

二是window.document.myFlashMovie(这个未度过,应该可以)

然后通过定义的“object变量.方法”的形式调用即可,通过传递的参数给FLEX内部方法传值。

再然后,flex内部方法是如何获得到外部javascript的调用呢?首先加载flex的时候会运行flex的主应用程序,我们可以在主应用程序加裁完之后提供一个自动调用初始化方法,在这个方法里来回调javascript方法就可以了。具体参考上面的例子如ExternalInterface.addCallback(“setTestValue”, setTestValue);

最后通过调用setTestValue方法来改变FLEX当前_testValue变量的值。

2.html嵌入flex,由FLEX来调用javascript的例子流程

上面实现的功能是在flex中点击一个按钮就会使html的标题名称发生改变。

首先html页面加载页面元素,将object加载进来,加裁object后通过onload方法自动调用javascript方法testPageInit();

其次在testPageInit()方法里我们可以调用对象FLEX内部方法(参考上面流程例子)也可以不调用,我们这个例子主要是在FLEX调用JAVASCRIPT,当全部加载完了FLEX,在FLEX里我们可以加一个按钮控件用于点击测试,来触发方法,此方法里具体写如何调用JAVASCRIPT方法(参考上面代码)。

并且在JAVASCRIPT中定义和changePageTitleName名字一样的方法。

讨论:

1.我发现当需要获取object对象时用window.document[“myFlashMovie”];才能在跨浏览器时获得到对象。

2.当要对object对象进行显示时用document.getElementById(“myFlashMovie”).style.display=””;才好使,当要隐藏时用document.getElementById(“myFlashMovie”).style.display=”none”;才好使。用window.document[“myFlashMovie”] .style.display=””;或window.document[“myFlashMovie”] .style.display=” none”;不好使。

3.对于IE来讲不需要embed部分也可以得到flex,但对于其他的浏览可能不兼容所以需要走embed部分,在这里需要指定id和name且名称一样,而且flashvars参数要用。保持object中的的参数项和参数值和embed里的参数相同。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值