在flash的按钮上加超链接并调用html的js怎么弄?
<SCRIPT type=text/javascript>
$(function(){
$(".regbox").colorbox({iframe:true, innerWidth:450, innerHeight:380, opacity:0.1});
$('.langu1>a,.sj a').click(function(){
$('.langu1 ul').toggle();
return false;
});
});
</SCRIPT>
这个是需要的链接:
<a class=regbox href="login.asp?lb=dj">打开</a>
我需要的效果就是在flash里面 加链接打开 html页面的一个 弹出框,麻烦高手解答,在线等,急,谢谢了!!!!!! 展开
现在大多数浏览器的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文件
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>flash as3打开网页并调用js中的函数</title>
<script type="text/javascript" src="/source/js/jquery-1.11.1.min.js"></script>
<script type="text/javascript" src="/source/js/jquery.swfobject.1-1-1.min.js"></script>
<script type="text/javascript">
$(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();
};
</script>
<style type="text/css">
#myFlashVars{width:800px; height:900px; border:1px #006666 solid;}
</style>
</head>
<body>
<div id="myFlashVars"></div>
</body>
</html>
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。
打开链接用navigateToURL函数。
as3和js交互,一般是用ExternalInterface。具体用法直接复制放到百度里搜就行。
虽然navigateToURL和ExternalInterface任意一个都能实现“加超链接”和“调用js”的功能,但是一般还是用navigateToURL加超链接,用ExternalInterface调用js。
getURL("这里写上你要连接的网址");
}
就可以啦
//按钮添加超链接
function onClick(evt:MouseEvent):void
{
navigateToURL(new URLRequest("http://www.baidu.com"));
}
//调用js
ExternalInterface.call("sayHelloWorld");
// JavaScript
function sayHelloWorld() {
alert("Hello World, from JavaScript");
}