论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
当前位置 > 文字教程 > Flash AS教程
Tag:2.0,3.0菜鸟,游戏,,cs,技巧,源码,,文本,文字,函数,音乐,随机,拖拽,asp,access,xml,mc,视频教程

Flash与Javascript间的联系

文章类别:Flash AS | 发表日期:2009-8-7 12:16:34

 Flash与Javascript 间的联系

前几天,看见有人问到这方面的问题,这里做个总结。
flash与javascript的之间的调用总要涉及到FSCommand.
. 在关键桢或按钮的 Flash as中调用网叶中预设的脚本程序
..直接使用网叶中的脚本控制swf的播放状态(stop,play,gotoframe)
...flash向javascript环境发送命令。(在flash里已经聂内建了一系列的专供Flash Player使用的FSCommand,E.g.:Quit,FullScreen,Exec,ShowMenu......)
   我想主要是这三种,第三种我就不说了,想大家也都会,这主要讲讲前两种
.flash对javascript的调用
    这里主要用到了FSCommand,FSCommand包括两个参数:Command和Arguments
这我们在Flash as编写对话框会看到的。
那swf是怎么让javascript动作的呢?
  因为FSCommand语句会激活javascript的moviename_DoFScommand语句
  (其中moviename是指在EMBED或OBJECT项中的NAME属性所指定的swf文件名。)
比如说,我们要使在网叶中swf中的按钮在按下时有弹出alert框的效果
  就必须现在按钮中加入Flash as:
on (release) {
     fscommand ("messagebox","XXXXX")  //XXX表示你要显示在alert框上的信息
    tellTarget ("/MC_name")
         play ();
     }
  }
  然后选择html/Dimensions/flash with FSCommand导出
  在导出的html中我们会发现这些源文件:

<SCRIPT LANGUAGE=JavaScript>
<!--
var InternetExplorer = navigator.appName.indexOf("Microsoft") != -1;
// Handle all the the FSCommand messages in a Flash movie
function Movie1_DoFSCommand(command, args) {
  var Movie1Obj = InternetExplorer ? Movie1 : document.Movie1;
  //
  // Place your code here...
  //
}
// Hook for Internet Explorer
if (navigator.appName && navigator.appName.indexOf("Microsoft") != -1 &&
         navigator.userAgent.indexOf("Windows") != -1 && navigator.userAgent.indexOf("Windows 3.1") == -1) {
       document.write('<SCRIPT LANGUAGE=VBScript\> \n');
       document.write('on error resume next \n');
       document.write('Sub Movie1_FSCommand(ByVal command, ByVal args)\n');
       document.write('  call Movie1_DoFSCommand(command, args)\n');
       document.write('end sub\n');
      
}
//-->
</SCRIPT>     

然后在   document.write('</SCRIPT\> \n');  后面加上:
function swfName_DoFSCommand(command,args) {
      if(command=="messagedox") {
          alert(args);
  }
}
  注意:如果不是使用的flash自导出html,则需要在DW里把ID改为swfName,必须一致。

..直接使用javascript控制swf
方法主要是通过调用一些内建的Movie属性,做法和调用javsscript的内建属性(document.write()或window.close())是一个道理
  那么,javascript能控制的swf的函数有哪些??
---- Play()
g.s.--YourMovieName.Play()

---- StopPlay()
g.s.--YourMovieName.StopPlay()

---- IsPlay()
e.g.--if(YourMovieName.IsPlaying)alert("Playing") //动画正在播放,弹出alert框

---- GotoFrame(int framesNum)
g.s.--YourMovieName.GotoFrame(n)

---- TotalFrames()
g.s.--YourMovieName.TotalFrames()

---- CurrentFrame()
g.s.--YourMovieName.CurrentFrame()+1  //返回动画当前桢数减一

---- Rewind()
g.s.--YourMovieName.Rewind()  //回到第一桢stop

---- SetZoomRect(int left,int top,int right,int bottom)
   //放大指定的坐标区域

---- Zoom(int percent)
e.g.--YourMovieName.Zoom(50) //放大一倍
   --YourMovieName.Zoom(200) //缩小一倍
   --YourMovieName.Zoom(0) //回复原大小

---- Pan(int x,int y,int mode)
   //平移放大动画

---- PercentLoaded()
e.g.--if(YourMovieName.PercentLoaded()<100)
         YourMovieName.GotoFrame(YourMovieName.PercentLoaded())

---- LoadMovie(int layer,Srting url)  //载入其他动画
e.g.--LoadMovie(1,"yourmovie.swf")

---- TGotoFrame(String target,int frameNum) //控制跳到第几桢
e.g.--TGotoFrame("_flash0/mm","10")  //mm为instance name

---- TGotoLabel(String target,string label) //控制跳到指定的label

---- TCurrentFrame(String taeget)  //返回指定的MC的当前桢-1
e.g.--fras=YourMovieName.TCurrentFrame("_flash0/mm")+1

---- TCurrentLabel(String target) //返回指定的MC当前所在label

---- TPlay(String target) //控制MC的播放
e.g.--YourMovieName.Play("_flash0/mm")

---- TStopPlay(String target)  //控制MC停止

HELP:         g.s. = 格式   e.g. = 例子

...另外,还有一种通过Get URL 语句使用javascript
    e.g.:
        getURL("JavaScript:function()");

上一篇:{教程}最新ToolTip类 人气:2469
下一篇:{教程}有关价格筛选中combobox价格筛选 人气:2066
视频教程列表
文章教程搜索
 
Flash AS推荐教程
Flash AS热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058