现在大多数浏览器的flash player版本都比较高,就直接用actionscript3.0代码了
用到的知识as3
navigateToURL()可以用来打开一个新的浏览器窗口,也可以用来flex和js之间的通信。
ExternalInterface 类是用来支持在 ActionScript 和 SWF 容器(例如,含有 JavaScript 的 HTML 页或使用 Flash Player 播放 SWF 文件的桌面应用程序)之间进行直接通信的应
此功能替代 fscommand() 方法。
用到的知识html/js/jquery
直接用Dreamweaver插入swf会生成一大堆难懂的代码,很不雅观,所以推荐用jquery和
jquery.swfobject.js //注jquery用来插入swf文件的插件
首先打开flash 文件->新建 ->actionscript3.0
2、新建两个元件一个用来打开网页(www.baidu.com) 一个用来调用html中的js函数
别名分别叫tobaidu和tojs 好了。
3、新建一个图层插入空白关键帧 在帧上以下代码\
import flash.external.ExternalInterface;
tobaidu.addEventListener(MouseEvent.CLICK,clickHandle);//给元件绑定点击事件,打开百度
tojs.addEventListener(MouseEvent.CLICK,callHtmlJS);
function clickHandle(e:MouseEvent):void{//给元件绑定点击事件,调用js函数
var url:URLRequest = new URLRequest("http://www.baidu.com");
navigateToURL(url,"_blank");
}
function callHtmlJS(e:MouseEvent):void{
ExternalInterface.call("show");
}
最后保存。
再在相同目录新建一个html文件用来插入刚才的生成的swf文件
$(function(){
var flashMovie = $('#myFlashVars');
flashMovie.flash(
{
// test_flashvars.swf is the flash document
swf: '/ewebjs.swf',
width: 800,
height: 600,
play: false,
flashvars: {
message: 'I come from Flash.'
},
}
);
});
function show(){
alert('我是给as3调用的show函数');
//location.reload();
};
#myFlashVars{width:800px; height:900px; border:1px #006666 solid;}
swf文件和html放在同一目录,如果本地调试,最好安装有本地开发环境,比如
wampserver,xampp或是iis也行,用localhost/xx.html这样子调试
具体代码可以看附件
flash用html添加按钮是不可行的,理论上,flash和html是两套不同的东西。
上策,你懂得flash,使用flash添加一个链接,这个跳转的链接是一个新的网页,自然可以使用js。(adobe flash)
中策,不要用flash的动画,使用canvas制作动画,然后本身就是html,自然也可以用js了。(adobe flash cc以上版本都支持canvas)
下策,虽说下策,但是最容易实现,在html上添加一个按钮,用浮动的方式覆盖flash按钮,然后写js。
可以看一下这个:http://www.cuplayer.com/player/PlayerCodeAs/2013/0109638.html
打开链接用navigateToURL函数。
as3和js交互,一般是用ExternalInterface。具体用法直接复制放到百度里搜就行。
虽然navigateToURL和ExternalInterface任意一个都能实现“加超链接”和“调用js”的功能,但是一般还是用navigateToURL加超链接,用ExternalInterface调用js。
超级连接在按钮上写段ASon(release){
getURL("这里写上你要连接的网址");
}
就可以啦
按钮添加超链接和 调用html的js 两种不同的操作不能同时进行
//按钮添加超链接
function onClick(evt:MouseEvent):void
{
navigateToURL(new URLRequest("http://www.baidu.com"));
}
//调用js
ExternalInterface.call("sayHelloWorld");
// JavaScript
function sayHelloWorld() {
alert("Hello World, from JavaScript");
}