在Flash动画中控制VB程序

Author: 兰亭 Date: 2001年 42期

?牐犖颐侵溃赩B中,我们利用ShockwaveFlash控件,可以很方便地实现对Flash动画的播放,那么反过来,我们能不能在Flash动画中控制VB程序呢?答案是肯定的,我们不但可以用Flash动画来封装VB界面,并且完全可以通过Flash来控制VB程序的运行。
  ?牐犚肍lash动画控制VB程序,必须先在Flash动画设计过程中加入动作脚本(AtionScript)。Flash的动作脚本中有一个FSCommand函数,它主要功能就是发送FSCommand命令。而在VB程序中,我们就可以利用ShockwaveFlash控件的FSCommand过程来完成这一命令发送功能,并且根据发送出来的不同命令及参数来实现对VB程序的控制。
  ?牐犜贔lash中,最简单的方法就是利用按钮来发送FSCommand命令,通过按钮来控制VB程序。在Flash动画设计时,只要在场景中放入按钮,在按钮上点击右键,选择“Actions”,打开“Object Actions”面板,点击在左上角的“+”号,在“Basic Action”中选“FSComand”,在弹出的动作脚本编辑窗口的“Command”中输入动作命令,“Arguments”处输入参数,就可得到这一按钮的动作脚本了。由于这一脚本仅发送命令,并未定义这一命令进行具体的控制操作,因此,把这一动画发布成*.swf格式后在Flash播放器中播放,点击按钮是没有任何反映的。
  ?牐犚迪衷贔lash中控制VB程序,必须通过ShockwaveFlash控件把动画加载到程序中,下面以一个简单的网络搜索程序来示例:
  ?牐牬蚩狥lash 5,制作一个名为“search.swf”的Flash动画,在场景中放进一个“搜索”按钮和一个“退出”按钮,然后为这两个按钮加入动作脚本。
  ?牐牎八阉鳌卑磁サ慕疟疚?
  ?牐爋n(release)}?? ??
  ?牐爁scommand(“Search”,“OpenURL”);?牔?
  ?牐牓爙
  ?牐牎巴顺觥卑磁サ慕疟疚?
  ?牐爋n(release){?? ??
  ?牐爁scommand(“Exit”,“Close”)?牔?
  ?牐牓爙
  ?牐牻疟旧瓒?了鼠标点击按钮释放后发送“Search”、“Exit”命令,“OpenURL”、“Close”是参数,其大小写在Flash脚本及VB程序中必须保证一致。
  ?牐犜赩B中建一标准EXE工程,把“search.swf”动画放在VB工程的同一目录下。在工具箱中点右键,选取“部件”,把ShockwaveFlash控件选出,并把它加入到窗体中,用来显示动画,再用一个文本框(TextBox)来作为文字输入的容器。输入如下程序代码:
  ?牐燩rivate Declare Function ShellExecute Lib “shell32.dll” Alias “ShellExecuteA” (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long '这一函数用来打开URL
  ?牐燩rivate Sub Form_Load()?煟?
  ?牐牐Ъ釉爻绦蛲荒柯枷碌膕earch.swf动画
  ?牐燬hockwaveFlash1.Movie = App.Path & “\search.swf”
  ?牐燛nd Sub
  ?牐燩rivate Sub ShockwaveFlash1_FSCommand?烞yVal command As String(ByVal args As String)??
  ?牐營f command = “Search” Then '如果发出Search命令,执行下列操作
  ?牐燯RL = “http://search.chinese.yahoo.com/search/gb?p=” + Text1.Text
  ?牐燙all ShellExecute(Form1.hwnd,“open”,URL,vbNullString,vbNullString,&H0)'打开浏览器到中文雅虎网站进行搜索
  ?牐燛nd If
  ?牐營f command = “Exit” Then End '如果发出Exit命令则退出
  ?牐燛nd Sub
  ?牐犜诵泻笤谖谋究蛑惺淙牍丶趾蟀炊械摹八阉鳌卑磁ィ涂山兴阉髁耍础巴顺觥卑磁ピ蚬乇粘绦颉T诔绦蛑校颐腔箍梢岳貌问╝rgs)来进行控制,如:程序中的If command = “Exit” Then End一句,我们把它改成If args = “Close” Then End,其效果是一样的。同时,我们可以随时通过更换Flash动画来给程序界面换肤,只要各个动画脚本中的命令、参数一致。
  ?牐燜lash有着极强的交互功能,把它强大的ActionScript和VB程序结合起来,一定能让我们设计的程序功能更加强,界面更加完美。