一:如何建立 c++ 与 Flash 之间通信?还有其他的实现方式嘛?
http://www.codeproject.com/KB/cpp/EnhancedFlashControl.aspx
[JAVA Script 与 SWFObject 通信]
http://blog.deconcept.com/swfobject/
[Transparent Flash Control in Plain C++]
http://www.codeguru.com/cpp/g-m/multimedia/graphics/article.php/c12229/Transparent-Flash-Control-in-Plain-C.htm
针对这个例子比较怪异的现象:
如果使用adobe flash player 10版本的话,那么运行这个程序会出现如图所示错误
且调试的时候进入Draw查看变量十分诡异,进入Draw函数查看原来初始化的变量值全是错乱的值,就连与进入
Create函数中的this值也不一样了。但是如果你安装了flash player 8版本后,一切又都OK了,搞了我两天,郁闷啊!
注意:
之前安装了flash player 10版本,后想安装flash player 8版本,在安装flash player 8版本之前,需要在安装文件路径
C:\WINDOWS\system32\Macromed\Flash下,运行FlashUtil**Plugin.exe之类的东东,进行卸载否则直接安装fla
sh player 8版本的话会出现类似于
Error 1904 .Module
c:\windows\system32\Macromed\Flash\Flash8.ocx
failed to register. HRESULT-2147220473. Contact
your support personnel
错误.
对于这种错误有人这样说(http://www.itpub.net/thread-491394-1-1.html),不过我没有这样尝试,也获取我运行
FlashUtil**Plugin.exe达到了相同的目的吧.
诡异的问题:
这个问题也真是十分诡异,我也解析不清楚,后来,这个问题,我卸载后,并在注册表
HKEY_LOCAL_MACHINE\SOFTWARE\Macromedia\FlashPlayer\SafeVersions 删除,同时重命名
C:\WINDOWS\system32\Macromed\Flash文件夹,然后安装flash10,结果可以正常运行,
调试中不会出现上面所说的Create和Draw函数中this指针不对的情况。比较新安装的C:\WINDOWS\system32\Macromed\Flash
与之前重命名发现,原来里面多了一个Flash10_t.ocx,这个我也不知道是怎么进来的,也许是装别的弄进来的吧,也获取是我下载
的安装文件来源不是官网的原因。
[C++ 与 Flash 交互]--写得很详细,很简单,实用
http://blog.csdn.net/xoyojank/article/details/3122679
脏矩形优化: 如果每帧都进行整个纹理的更新, 你会发现CPU占用率相当高. 实际上ActiveX本身是有这个优化的,
只不过我们需要自己找出这个矩形. 通过实现IOleInPlaceSiteWindowless::InvalidateRect可以得到相应的"脏"
矩形区域, 然后只需要更新相应的纹理区域就可以让效率达到商用的标准.
技术讨论:
http://topic.csdn.net/u/20090403/10/DB05E942-DD89-40D9-9DCD-6D56572A39BF.html#r_56291930
[参考代码]
http://read.pudn.com/downloads137/sourcecode/windows/dotnet/584833/GameGUI/FlashPlayer.cpp__.htm
2:如何利用AS创建BUTTON等等来实现界面展示?
http://www.adobe.com/cn/devnet/flash/quickstart/button_component_as3/
首先你需要从 Components面板中将该组件的一个拷贝拖拽至你当前的 Flash 文档库中。
然后需要使用import语句导入fl.controls.Button类,这一步骤是必需的,组件文件不是以隐含方式导入的,
使用addChild() 方法可以将新的实例添加至显示列表中。
3:如何获取SWF文件的帧信息?
* 获得加载SWF的舞台大小以缩放到适合尺寸显示
* 使加载的SWF按自己的帧频播放
4:BMP图片转成背景透明图片格式?
http://topic.csdn.net/u/20090708/10/6c520cd1-d44e-4413-9f0b-3909c7ed6b80.html [用CxImage保存为png前,调用SetTransIndex(0) & SetTransColor( 背景色RGBQUAD ) 试试,但有失真]
[PNG 结构信息]
http://www.cnblogs.com/cymheart/archive/2005/08/20/219212.html
[PNG官方文档]
http://www.w3.org/TR/PNG/
利用libpng来讲bmp图像数据转变成png图像格式
bmp图像是不支持透明的,即使是32位的bmp图片也是如此,
学习:
在百度中搜索 “WTL for MFC Programmers, Part” 系列文章。
http://www.codesky.net/article/doc/200506/2005062437347220.htm
flash资料网站
http://www.iteye.com/wiki/blog/606041
开源网站:
http://www.oschina.net
DDB与DIB之间的区别:
http://www.lihuasoft.net/article/show.php?id=3013
使用hikari-library:[涉及C++与AS通信,透明图像抓取]
http://code.google.com/p/hikari-library/wiki/CompilingFromSource
需要下载Ogre3d SDK: http://www.ogre3d.org/download/sdk