1.基本概念:

VC为Flash实现了一个CWnd的包装:CShockwaveFlash,该类实现了FlashActiveX控件的所有功能。

shockwave flash object控件有四个事件句柄(eventhandler)。分别是:FSCommand, OnProgress, FlashCall, OnReadyState。

FSCommand:flash就是给支持它的应用程序发送消息的手段。除了利用FSCommand外,shockwave flash object还提供了两个进行交互的函数,一个是CString GetVariable(LPCTSTR name),用来获得flash动画中变量name的值,该值以CString的形式返回给调用者;一个是void SetVariable(LPCTSTR name, LPCTSTR value),可以用来将flash动画中的name变量设置一个值value。但这种交互方式有比较高的耦合性,需要flash开发者及应用程序的开发 者有比较紧密的配合。但这种方式也可以一些交互性很强的flash。当然更多的是两种方式同时采用。因为这两种方法各有不同的使用背景。一般来说如果需要对整个flash和应用程序的外部行为进行控制则采用FSCommand,而如果只是需要对flash的内部动作进行响应则使用GetVariable和SetVariable。

FSCommand事件说明
    FSCommand(command,args)命令有两个参数,都是字符串,你可以在flash脚本中指定任意的字符串。比如用户按下flash动画的一个按钮就发送FSCommand("bt","bt1")这样一个消息,按下另一个按钮发送FSCommand("bt","bt2"),而我们的程序 收到FSCommand消息后就对通过两个参数的不同字符串来判断用户按下的是哪个按钮。简单的说,就是在flash动画中使用FSCommand发送消息,在我们的程序接收和处理FSCommand消息。

2.VC使用flash简易教程

1.      插入Shockwave Flash Object空间(Active)

2.      给新控件添加一个ctrl变量flashUI

3.      初始化添加代码:

flashUI.LoadMovie(0, L"C:\\Users\\Administrator\\Desktop\\touqiu.swf");

3.Flash与后台数据交互方法

  1. LoadVars(XML)
  2. Flash Remoting
  3. Webservice
  4. XMLSocket
  5. FlashCom(FMS)

4.VC中CShockwaveFlash的常用函数

Play()                                                  播放动画 
StopPlay()                                               停止动画 
IsPlaying()                                              动画是否正在播放(true,false) 
GotoFrame(frame_number)                                  跳转到某帧(frame_number+1) 
TotalFrames()                                            获取动画总帧数 
CurrentFrame()                                           回传当前动画所在帧数-1 
Rewind()                                                使动画返回第一帧 
SetZoomRect(left,top,right,buttom)                       放大指定区域 
Zoom(percent)                                            改变动画大小 
Pan(x_position,y_position,unit)                         使动画在x,y方向上平移 
PercentLoaded()                                      返回动画被载入的百分比(0-100) 
LoadMovie(level_number,path)                         加载动画 (绝对路径)
TGotoFrame(movie_clip,frame_number)                  movie_clip跳转到指定帧数 
TGotoLabel(muvie_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的指定属性
CallFunction(CString)                                MFC向Flash发送信息

6.       实现MFC与Flash的通信

首先做好用来测试用的flash

在flash上面点击两个红色按钮,向MFC发送两个不同的消息:
fscommand("fs1");
fscommand("fs2");
MFC向flash发送消息:
在FLASH中,要用ExternalInterface.addCallback把能被外部调用的函数注册一下,例如:ExternalInterface.addCallback("strShow1",strShow1);
ExternalInterface.addCallback("strShow2",strShow2);

1,Flash通过FSCommand消息调用MFC
第一步:添加消息处理函数。在Flash控件上点右键,然后选择“添加事件处理程序”void CFlashTestDlg::FSCommandShockwaveflash1(LPCTSTRcommand, LPCTSTR args)
第二步:编写消息处理代码。
void CFlashTestDlg::FSCommandShockwaveflash1(LPCTSTR command,LPCTSTR args)

{    // TODO: 本次只是测试,正规项目一般都是switch语句
     CString toShow;
     toShow.Format("Flash向MFC发送的参数列表command:%s---args:%s",command,args);
     AfxMessageBox(_T(toShow));
}
2、MFC通过CallFunction函数调用Flash
     CString temp = "<invokename=\"strShow1\"><arguments><string>这是C++调用flash的响应</string></arguments></invoke>";
flashUI.CallFunction(temp);
上面这个函数会调用flash文件里的strShow1函数。

VC使用flash简易教程相关推荐

  1. 影片剪辑动起来-雅酷互动flash简易教程第2篇

    影片剪辑动起来-雅酷互动flash简易教程第2篇 在百度看到有网友留言说更新太慢,在这里向大家先说声抱歉,因为年底事情比较多,所以很难静下来写第三篇,但是,以后我会尽量以每周一篇的速度进行更新,如果有 ...

  2. VC绘图/游戏简易教程

    用数字表示颜色] 除了用RGB(r,g,b)方式外,还可以用16进制表示颜色,格式:0xbbggrr 例如,setlinecolor(0x0000ff) 和 setlinecolor(RGB(255, ...

  3. 雅酷FLASH AS2简易教程第0篇

    [url=javascript:void(0);/*1251087455109*/]雅酷FLASH AS2简易教程第0篇[/url] [url=http://www.5uflash.com/flash ...

  4. 懒人自有懒办法——雅酷互动flash as2简易教程第4篇

    懒人自有懒办法--雅酷互动flash as2简易教程第4篇 据说,这世界是由懒人创造的.因为实在懒得不愿走路,所以,我们发明了汽车,因为实在懒得不愿意提东西,所以我们发明了起重机:因为实在懒得不愿意计 ...

  5. 玩的就是影片剪辑-雅酷flash as2简易教程第1篇

    玩的就是影片剪辑-雅酷flash as2简易教程第1篇 上一篇教程出来以后,很多网友留言,问我为什么不直接讲as3,而是很过时的唠叨as2,这里首先澄清一下,as3是一个好东西,本博客并非要视as3为 ...

  6. 让运动更流畅、更优雅、更丰富——雅酷互动flash as2简易教程第3篇

    让运动更流畅.更优雅.更丰富--雅酷互动flash as2简易教程第3篇 现在大家应该都会使用AS程序让影片剪辑动起来了.但是你按照我教你的方法做来做去,一定做得很郁闷,为什么呢?别人的FLASH看起 ...

  7. ST单片机使用ST Visual Programmer软件烧录程序简易教程

    文章原始地址: http://feotech.com/?p=100 ST单片机使用ST Visual Programmer软件烧录程序简易教程 ST Visual Programmer 是ST公司为自 ...

  8. 文件上传利器SWFUpload入门简易教程

    凡做过网站开发的都应该知道表单file的确鸡肋. Ajax解决了不刷新页面提交表单,但是却没有解决文件上传不刷新页面,当然也有其它技术让不刷新页面而提交文件,该技术主要是利用隐藏的iFrame, 较A ...

  9. qmake 简易教程

    qmake 简易教程 qmake是Qt开发中默认的构建工具. posted on 2018-05-27 00:09 JichengTang 阅读(...) 评论(...) 编辑 收藏 转载于:http ...

最新文章

  1. golang 切片删除指定内容
  2. HTML与CSS基础之选择器优先级(十)
  3. 全国计算机等级考试题库二级C操作题100套(第12套)
  4. 【POJ - 1269 】Intersecting Lines (计算几何,直线间的位置关系)
  5. 安全狗远程3389端口修改工具
  6. Invitation Cards(建反图 + 跑两遍SPFA)
  7. 【转载】 vs2005视频教程 之 抽象类和接口 四 [视频]
  8. Log4net日志发布到服务器上日志无法写入
  9. Unity中Camera的Clear flags,Culling Mask,Depth参数
  10. Tomcat的安装、配置常见问题
  11. 2020年python工资一般多少-武汉Python薪资一般是多少?真实数据告诉你
  12. CSDN 原力 -- beta 测试中
  13. delphi 远程mysql_Delphi远程连接Mysql的实现方法
  14. [ubuntu] 安装五笔输入法
  15. java 163邮箱发邮件_java用163邮箱发邮件的方式,步骤有哪些?
  16. 【转载】网络基础-华山论剑
  17. Linux日常命令及理解
  18. STM32 CAN 库函数
  19. 基于EAST+CRNN实现集装箱箱号识别
  20. 100句背5000单词。

热门文章

  1. spring整合junit问题分析
  2. 使用Stream流的方式,遍历集合,对集合中的数据进行过滤
  3. 【Homework】什么是多态,多态具体体现有哪些?
  4. 纽约州立大学宾汉姆顿大学计算机科学,C同学喜获纽约州立大学宾汉姆顿大学硕士录取...
  5. C++用模板元编程进行循环展开的性能测试
  6. vue生命周期探究(一)
  7. 使用注解实现ssh整合
  8. dojo/aspect源码解析
  9. 史上最全PHP正则表达式实例汇总
  10. 运用Edraw为WPF应用程序嵌入Office文档的方法总结