//Flash里的ActionScript:
import flash.events.MouseEvent; import flash.external.ExternalInterface; function myCall(e:MouseEvent){ var intxt = inputa.text; var inwid = inputa.length; ExternalInterface.call("fCallJs",intxt,inwid); } btn.addEventListener(MouseEvent.CLICK,myCall);
//网页里接受的JavaScript:
<script type="text/javascript" > function fCallJs(aaa,bbb){ alert(aaa+","+bbb); }; </script>
//注意几点:
1、如果用Jquery,不要把此
function
放在自执行的$(
($) {});里面,否则不运行。
=======================================================
【2】JS控制Flash动作
//比如在网页里的Flash标签是:
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0" width="550" height="400" id="Test" align="middle"> <param name="allowScriptAccess" value="sameDomain" /> <param name="movie" value="Test.swf" /> <param name="quality" value="high" /> <param name="bgcolor" value="#ffffff" /> <embed src="Test.swf" quality="high" bgcolor="#ffffff" width="550" height="400" name="Test" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /> </object>
//网页JavaScript:
<script type="text/javascript" > $(function($) { $("#go").click(function(){ var myFlash = getFlashMovieObject("Test"); myFlash.TPlay("star");//在此Flash里有个叫star的电影片段 }); }); function getFlashMovieObject(movieName) { //这个是为了让所有浏览器能获取到Flash的ID if (window.document[movieName]){ return window.document[movieName]; } if (navigator.appName.indexOf("Microsoft Internet")==-1) { if (document.embeds && document.embeds[movieName]) return document.embeds[movieName]; } else // if (navigator.appName.indexOf("Microsoft Internet")!=-1) { return document.getElementById(movieName); } } </script>
//所有JS控制Flash的参数:(注意大小写)Play() ---------------------------------------- 播放动画
StopPlay()------------------------------------停止动画
IsPlaying()----------------------------------- 动画是否正在播放
GotoFrame(frame_number)---------------- 跳转到某帧
TotalFrames()------------------------------- 获取动画总帧数
CurrentFrame()------------------------------回传当前动画所在帧数-1
Rewind()-------------------------------------使动画返回第一帧
SetZoomrect(left,top,right,buttom)-------放大指定区域
Zoom(percent)------------------------------改变动画大小
Pan(x_position,y_position,unit)------------使动画在x,y方向上平移
PercentLoaded()----------------------------返回动画被载入的百分比
LoadMovie(level_number,path)----------- 加载动画
TGotoFrame(movie_clip,frame_number)- movie_clip跳转到指定帧数
TGotoLabel(movie_clip,label_name)------ movie_clip跳转到指定标签
TCurrentFrame(movie_clip)--------------- 回传movie_clip当前帧-1
TCurrentLabel(movie_clip)-----------------回传movie_clip当前标签
TPlay(movie_clip)---------------------------播放movie_clip
TStopPlay(movie_clip)----------------------停止movie_clip的播放
Getvariable(variable_name)-----------------获取变量
Setvariable(variable_name,value)-----------变量赋值
TCallFrame(movie_clip,frame_number)---call指定帧上的action
TCallLabel(movie_clip,label)----------------call指定标签上的action
TGetProperty(movie_clip,property)--------获取movie_clip的指定属性
TSetProperty(movie_clip,property,number)-设置movie_clip的指定属性
其中TGetProperty 和 TSetProperty 的属性是使用数字0-18来获取的,下面是各数字代表的属性:
属性 作用 数字 使用方式
X Position X坐标 0 Get,Set
Y Position Y坐标 1 Get,Set
X Scale X方向缩放比率 2 Get,Set
Y Scale Y方向缩放比率 3 Get,Set
CurrentFrame movie_clip当前所在帧数 4 Get
TotalFrames movie_clip总帧数 5 Get
Alpha movie_clip的透明度 6 Get,Set
Visibility movie_clip是否可见 7 Get,Set
Width movie_clip的宽度 8 Get
Height movie_clip的高度 9 Get
Rotation movie_clip的旋转度 10 Get,Set
Target movie_clip的路径 11 Get
Framesloaded movie_clip已载入的帧数 12 Get
Name movie_clip的实体名字 13 Get,Set
DropTarget movie_clip的拖拽 14 Get
Url 包含movie_clip的动画的url 15 Get
HighQuality 设置画面质量为高质量 16 Get,Set
FocusRect 显示按钮边框 17 Get,Set
SoundBufTime 预设声音缓冲时间 18 Get,Set
感谢http://blog.csdn.net/feb13/article/details/7691793
【3】JS调用Flash里的函数
AS3
import flash.external.ExternalInterface; ExternalInterface.addCallback("jsf",asf); //允许js调用flash中的函数 参数1:要调用flash函数的js函数,参数2:被调用flash函数 function asf(vvv){ inputa.text = vvv; }
JQUERY
$(document).ready(function() { var myFlash = getFlashMovieObject("Test"); $("#go2").click(function(){ var aaa = $("#input01").val(); myFlash.jsf(aaa); }); }); function getFlashMovieObject(movieName) { if (window.document[movieName]){ return window.document[movieName]; } if (navigator.appName.indexOf("Microsoft Internet")==-1) { if (document.embeds && document.embeds[movieName]) return document.embeds[movieName]; }else{ return document.getElementById(movieName); } }
或者在JQUERY里这样
function getFlashMovieObject(movieName) { if (window.document[movieName]){ return window.document[movieName]; } if (navigator.appName.indexOf("Microsoft Internet")==-1) { if (document.embeds && document.embeds[movieName]) return document.embeds[movieName]; }else{ return document.getElementById(movieName); } } function jsf(aaa) { var myFlash = getFlashMovieObject("Test"); myFlash.jsf(aaa); };HTML
<form name="form1" onsubmit="return false;"> <input type="text" id="input01" value="" /> <input type="button" value="Send" onclick="jsf(this.form.input01.value);" /><br /> </form>
【4】JS获取FLASH里的值,再传回页面
JQUERY里(getFlashMovieObject函数就不写了,同上)
$("#topBtn4").click(function(){ vr.askInfo();//查询当前FLASH的状态 if(flashStatus != "idle"){ vr.vrStop(); }else{ vr.vrPlay(); }; }); //获取返回的flashStatus值,由JS调用FLASH里的函数,再调用回这个函数 function getInfo(fs){ flashStatus = fs; };
AS3
//允许js调用flash中的函数 参数1:要调用flash函数的js函数名,参数2:被调用flash函数名 ExternalInterface.addCallback("askInfo",askInfo); function askInfo(){//这个函数是让JS调用来获取FLASH状态信息的,再传递回JS var fs:String = flashStatus; ExternalInterface.call("getInfo",fs); }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。