在VC中使用 Flash 美化你的程序

暗黑料理day

暗黑料理day

2016-02-19 19:04

今天图老师小编要向大家分享个在VC中使用 Flash 美化你的程序教程,过程简单易学,相信聪明的你一定能轻松get!

  我们分为两步来走:

  一、将flash动画嵌入自己的程序中,这一点比较简单,使用shockwave flash object控件就可以实现。这个控件在安装flash的时候就装到你的系统上了,flash5.0以下的文件名是swflash.ocx,5.0以上版本的名字是flash.ocx,在系统目录里面应该可以找得到;

  二、在flash动画和自己的程序中传递消息进行交互。这一点也是要通过控件来实现,不过得在flash动画和自己的程序中做些处理。

  下面我们来具体说明操作过程:

  一、将flash动画嵌入自己的程序中。所有在windows平台上的支持ocx控件的软件开发工具都可以做到这一点。我使用的是vc++6.0,就以这个的做法来介绍。

  1、检查你的系统上是否有shockwave flash object控件并已注册。如果你的系统上装有flash,则就有这个控件,否则的话,可以到网上下载一个过来安装。

  2、新建一个MFC对话框应用程序,假设命名为PlayFlash。

  3、添加shockwave flash object控件。建立对话框应用程序后,在主菜单里选择“工程-添加工程-components and controls”菜单选项,这时会弹出一个components and controls gallery文件选择对话框,里面有两个文件夹,一个是registered activex controls,一个是visual c++ components。选择第一文件夹后会出现一系列系统上已注册过的activex控件。在里面选择shockwave flash object(如果你系统上没这个控件,这里面就找不到了,可以去download个下来安装),点击insert将它插入工程。因为在vc中插入工程的控件要通过一个类来操作,所以这时vc会提示你为这个控件指定一个类名,可以使用默认的类名就行了。插入后vc会自动把这个类加入工程里面。

  4、生成一个该控件的对象。将shockwave flash object控件成功插入自己的工程后,在vc对话框编辑器的controls面板上就会多出图标,这个图标就是刚加入的控件的图标了。呵,这样接下来怎么用就再清楚不过了吧。和使用BUTTON、EDIT等其它windows控件一样,把它拉到对话框上,给它关联一个对象,对象的类就是我们刚才插入控件的时候所产生的类。我们可以使用这个类的成员函数来操纵这个对象,来进行flash动画的控制以及和自己的程序进行交互等操作了。这里假设关联的对象名为:m_FlashPlayer。

  5、使用成员函数LoadMovie和Play来导入并播放动画。

m_FlashPlayer.LoadMovie(0, strMovieUrl);该函数用来将动画导入程序中,strMovieUrl为要播放的flash路径,要用绝对路径。 m_FlashPlayer.Play();调用该函数开始播放动画。在初始化对话框的函数里面加入这两个函数调用即可。

  怎么样,现在运行程序,看到flash嵌入到你的程序里面了吧。还有几个常用的函数可以用来控制动画的播放,如GotoFrame(long FrameNum)可以转到FrameNum侦播放(侦数从0开始),StopPlay()可以停止播放。。。,还有很多,可以自己试试'。下面我们要介绍如果进行交互性的控制了。 

  二、在flash动画和自己的程序中传递消息进行交互。

  把flash嵌入自己的程序后,用户在flash动画上面操作,想知道用户进行了什么操作,就得让flash动画来告诉我们了。做过flash的人应该知道flash的动作脚本语言:Action Script。里面有个命令叫FSCommand(command,args);我们就是要通过这个命令向外部发送消息的。这个命令有两个参数,都是字符串,你可以在flash脚本中指定任意的字符串。比如用户按下flash动画的一个按钮就发送FSCommand("bt","bt1")这样一个消息,按下另一个按钮发送FSCommand("bt","bt2"),而我们的程序收到FSCommand消息后就对通过两个参数的不同字符串来判断用户按下的是哪个按钮。

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

  原理就是这样子的,要实现的话就得在flash动画中使用FSCommand发送消息,在我们的程序接收和处理FSCommand消息了。flash部分的就不讲了。那我们的程序如何才能接收这个消息呢?前面我们讲到,shockwave flash object插入我们的程序后就可以象一个普通的windows控件那样使用它了。要让它接收并处理这个消息当然是使用MFC的类向导进行消息映射了。做法如下:

  1、添加消息处理函数。 在主菜单中选择“查看-类向导”,在弹出的对话框中选择消息映射,在左边的列表框中选择我们刚插入程序的shockwave flash object控件id,右边选择FSCommand, 点击AddFunction,这样就添加了一个FSCommand消息处理函数了。它的形式大概是这样子的:

  void CPlayFlashDlg::OnFSCommandShockwaveflash1(LPCTSTR command, LPCTSTR args) ;函数有两个参数,就是flash的Action SCript中FSCommand语句中的两个参数。其实并不一定两个参数都用到,flash脚本中可以就使用一个参数,这样这边的函数就只要对第一个参数进行处理就行了。

  2、编写消息处理代码。 在刚添加的FSCommand消息处理函数中,对两个参数进行处理。其实就是做字符串比较的操作,根据是什么字符串来判断用户进行了什么操作。大概就是这样子的:

  void CPlayFlashDlg::OnFSCommandShockwaveflash1(LPCTSTR command, LPCTSTR args) { // TODO: Add your control notification handler code here if( 0 == strcmp(command,"bt") ) {  if( 0 == strcmp(args,"enter") )  {   MessageBox("欢迎进入系统!");  } } else if( 0 == strcmp(command,"quit") ) {  MessageBox("您选择了退出!");  CDialog::OnCancel(); }}

  这只是最简单的处理形式,当然你可以在flash中发送复杂的字符串,在这边就要进行更多的处理了。

  三、设置和读取flash动画中的变量。

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

  shockwave flash object还提供了两个进行交互的函数,一个是CString GetVariable(LPCTSTR name),用来获得flash动画中变量name的值,该值以CString的形式返回给调用者;一个是void SetVariable(LPCTSTR name, LPCTSTR value),可以用来将flash动画中的name变量设置一个值value。

展开更多 50%)
分享

猜你喜欢

在VC中使用 Flash 美化你的程序

编程语言 网络编程
在VC中使用 Flash 美化你的程序

在VC中使用Flash美化你的程序

编程语言 网络编程
在VC中使用Flash美化你的程序

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

在Flash中使用位图的技巧

flash教程
在Flash中使用位图的技巧

怎样在vc、delphi中使用mysql

编程语言 网络编程
怎样在vc、delphi中使用mysql

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

在VC中使用Windows管道技术编程

编程语言 网络编程
在VC中使用Windows管道技术编程

在FLASH中使用像素字体技巧

电脑网络
在FLASH中使用像素字体技巧

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

学习:如何在HTML中引用XML数据

学习:如何在HTML中引用XML数据

VC++初学者经典错误LNK2001详解

VC++初学者经典错误LNK2001详解
下拉加载更多内容 ↓