搜索
aardio官方社区 门户 查看主题

使用标准库: win.flashBox 创建Flash透明窗口

发布者: Jacen.He | 发布时间: 2012-12-4 04:13| 查看数: 35799| 评论数: 52|帖子模式

标准库中增加 win.flashBox 组件,
用于在桌面上透明显示flash动画,也可以支持让子窗口透明显示flash动画。
可以支持内存加载,可生成独立EXE文件,支持系统自带的flash控件。

与基于商业组件f-in-box的 win.flashInbox扩展库比较:

1、win.flashBox 完全免费、可自由使用。
2、win.flashBox 的体积比f-in-box小很多,仅32KB,也就是一个很小的小图标那么大。
f-in-box对新版flash控件支持不稳定(之前发的范例遇到崩溃规象,最后是打包一个lash8.ocx解决,但这样体积就更大了)
3、win.flashBox 可以让子窗口播放透明flash动画(使用custom控件即可),flash可以在网页以外的控件上面飘来飘去了。

--------------------------------------------------------------
win.flashBox的用法完全兼容 com.flash 的所有接口,
支持aardio与as脚本交互、添加事件等都非常方便,这些请参考原来的flash调用例子。
只要简单的把范例里的 com.flash 几个字替换为 win.flashBox就可以,用法完全一样。
--------------------------------------------------------------


创建透明窗口方法一:
--------------------------------------------------------------
直接使用 win.flashBox 创建窗口。
  1. import win.flashBox
  2. var flash = ..win.flashBox(text="aardio Form";right=599;bottom=399)
  3. flash.movie = "http://update.aau.cn/aardio/samples/transparent.swf";

  4. flash.show()
  5. win.loopMessage();
复制代码


创建透明窗口方法二:
--------------------------------------------------------------
可以在已创建的winform窗口对象上显示透明动画(支持custom控件创建的子窗口)
  1. import win.ui;
  2. /*DSG{{*/
  3. var winform = win.form(text="迤明FLASH";right=562;bottom=355;border="dialog frame";parent=...)
  4. winform.add(
  5. button={cls="button";text="button";left=296;top=238;right=488;bottom=301;z=2};
  6. combobox={cls="combobox";left=76;top=51;right=229;bottom=77;edge=1;items={};mode="dropdown";z=3};
  7. edit={cls="edit";text="edit";left=82;top=99;right=493;bottom=222;edge=1;multiline=1;z=4};
  8. flashWnd={cls="custom";text="custom";left=28;top=17;right=538;bottom=333;autosize=1;center=1;edge=1;transparent=1;z=1}
  9. )
  10. /*}}*/

  11. winform.show();

  12. import win.flashBox;
  13. var flash = win.flashBox( winform.flashWnd );
  14. flash.movie = "http://update.aau.cn/aardio/samples/transparent.swf";

  15. win.loopMessage();
复制代码


一个完整的透明FLASH界面示例:点击下载全部源码(含swf文件)


以下是上面示例的完整源码:

  1. import web.util;
  2. import win.flashBox;
  3.   
  4. // 创建FLash透明窗口
  5. var flash = ..win.flashBox( {text = "任务栏你好"}  )

  6. // 导出接口函数可供Flash调用
  7. flash.external = {
  8.         //关闭
  9.         resize = function(param){
  10.                 var cx,cy = string.match(param,"(\d+)\,(\d+)");
  11.                 flash._form.setPos(0,0,cx,cy);
  12.         }
  13.         close= function(){
  14.                 flash._form.close();
  15.         }
  16.         //退出
  17.         quit= function(){
  18.                 flash._form.close();
  19.         }       
  20.         //最小化
  21.         minimal = function(){
  22.                 flash._form.hitmin();
  23.         }
  24.         //拖动
  25.         moving = function(){
  26.                 flash._form.hitCaption();
  27.         }
  28.         //注册
  29.         register = function(){
  30.                 web.util.ieBrowser("http://www.aau.cn/member.php?mod=register")
  31.         }
  32.         //充值
  33.         charge = function(){
  34.                 flash._form.msgbox("免费免费了!")
  35.         }
  36.         //修复
  37.         repair = function(){
  38.                 flash._form.msgbox("修复已完成!")
  39.         }
  40.         //设置
  41.         settingr = function(){
  42.                 flash._form.msgbox("本功能还没时间写!")
  43.         }
  44.         //开始
  45.         start  = function(){
  46.                 flash.play();
  47.         }
  48.         //动画播放完触发
  49.         ["end"] = function(){
  50.        
  51.                 //设置进度条
  52.                 flash.xcall("setProgressTotal",0);
  53.                 flash.xcall("setProgressPart",0);
  54.                 var progress = 0;
  55.                 tmid = flash._form.addtimer(
  56.                         10/*毫秒*/,
  57.                         function(hwnd,msg,id,tick){//定时执行代码
  58.                                 progress++;
  59.                                 flash.xcall("setProgressPart",progress);
  60.                                 flash.xcall("setProgressTotal",progress);
  61.                         }
  62.                 );

  63.         }
  64. }

  65. //显示窗口
  66. flash.show()

  67. //内存加载Flash
  68. flash.movie = $"\res\movie.swf"

  69. win.loopMessage()

复制代码

评分

参与人数 2银币 +3 收起 理由
2535163639 + 2 赞一个!
aoyunzdq2008 + 1 神马都是浮云

查看全部评分

最新评论

Jacen.He 发表于 2012-12-4 04:16:45

web.kit也可以显示透明flash,可以内存加载flash,或嵌入资源里加载swf文件。 这个是开源且免费的,但是webkit组件比较大,组件本身不能嵌入

web.kit也可以显示透明flash,可以内存加载flash,或嵌入资源里加载swf文件。
这个是开源且免费的,但是webkit组件比较大,组件本身不能嵌入EXE。
webkit.flash.jpg

  1. import win.ui;
  2. /*DSG{{*/
  3. var winform = ..win.form(text="webkit浏览器简单示例";right=1123;bottom=570;border="none";mode="popup")
  4. winform.add()
  5. /*}}*/

  6. //导入webkit支持库
  7. import web.kit.layeredWindow;
  8. import web.kit.fileSystem; //让flash可以支持内存嵌入资源
  9. var webkit = web.kit.layeredWindow(winform);//创建透明分层窗口

  10. webkit.html = /**
  11. <!doctype html>
  12. <html>
  13. <body>
  14.     <object width="500" height="500" type="application/x-shockwave-flash" data="http://img.pet.qq.com/xuanflash/1024900151.swf">
  15.         <param name="movie" value="http://img.pet.qq.com/xuanflash/1024900151.swf">
  16.         <param name="wmode" value="Transparent">
  17.         <param name="quality" value="high" />
  18.     </object>
  19.    
  20.     <!--注意页面上一定要放一点什么空白的内容,不然透明Flash无法自己绘制背景导致产生重影-->
  21.      
  22. </body>
  23. </html>
  24. **/

  25. winform.wndproc = function(hwnd,message,wParam,lParam){
  26.     if( message == 0x201/*_WM_LBUTTONDOWN*/ )
  27.         winform.close();
  28. }

  29. winform.show()
  30. win.loopMessage();
复制代码
045631xk1nnntyoeczykwk.png
xuxu 发表于 2012-12-4 07:53:49

多谢Jacen,我正想研究Flash动画

多谢Jacen,我正想研究Flash动画
nvt303 发表于 2012-12-4 08:22:32

努力往懂看。

努力往懂看。
jyb21 发表于 2012-12-4 08:58:53

4小时前什么概念,夜里4点发的啊,辛苦了

4小时前什么概念,夜里4点发的啊,辛苦了
5e365 发表于 2012-12-4 09:04:51

前排学习。感谢!

前排学习。感谢!
carl 发表于 2012-12-4 09:08:20

很是给力,又有新东西了

很是给力,又有新东西了
ProPHP 发表于 2012-12-4 14:26:49

真是全心全意为大家啊,十分感谢

真是全心全意为大家啊,十分感谢
auaau 发表于 2012-12-4 14:51:11

[code] import win.flashInBox; /*去掉试用水印{{*/ import process; var prcs = pr


  1. import win.flashInBox;

  2. /*去掉试用水印{{*/
  3. import process;
  4. var prcs = process();  
  5. var pDrawDemoAddr = tonumber( win.flashInBox._dll.gethandle()  ) +  0x1000 + 0x25EE0;
  6. prcs.protect(pDrawDemoAddr,0x4/*_PAGE_READWRITE*/,1)
  7. prcs.writeString( pDrawDemoAddr,'\0' )
  8. prcs.free();
  9. /*}}*/


  10. var flash = ..win.flashInBox(  text = "flashInBox 去掉试用水印"  )
  11. flash.show()
  12. flash.putMovie( $"~\example\Flash\testCall.swf")
  13.        
  14. win.loopMessage()
复制代码
MMiao79 发表于 2012-12-4 15:11:13

{:3_48:} 参观下!留个记号!谢谢代码分享~

  参观下!留个记号!谢谢代码分享~
donque2010 发表于 2012-12-4 15:25:24

支持一个,感谢分享~

支持一个,感谢分享~
qqmmcc 发表于 2012-12-4 21:24:12

强大,支持~ 日后有空学习~

强大,支持~ 日后有空学习~
wealthy 发表于 2012-12-5 13:30:30

强大,支持{:3_59:}

强大,支持
wyyyh 发表于 2012-12-5 13:42:13

相当的漂亮

相当的漂亮
Jacen.He 发表于 2012-12-5 22:50:31

[align=left][font=新宋体][color=#0000ff]var[/color][color=#000000] flash = ..win.fl

var flash = ..win.flashInBox(  text = "flashInBox 透明窗口"  )
创建flash对象以后,flash._form 就是一个普通的winform对象,例如关闭窗口就是 flash._form.close();



fanishare 发表于 2012-12-9 20:40:10

支持一把!

支持一把!
xiaozhou 发表于 2012-12-13 22:25:01

看到这么多帖子,我真感觉我找到了这我一直想找的一种语言,或者称之为工具,

看到这么多帖子,我真感觉我找到了这我一直想找的一种语言,或者称之为工具,
evanliang 发表于 2013-1-23 18:27:32

谢谢啦!哈哈,学习嘛!

谢谢啦!哈哈,学习嘛!
richardor 发表于 2013-1-24 20:49:18

厉害啊。c++也能这么方便的实现么

厉害啊。c++也能这么方便的实现么
123下一页

手机版|未经许可严禁引用或转载本站文章|站长邮箱|aardio.com|aardio官方社区 ( 皖ICP备09012014号 )

GMT+8, 2017-5-24 10:28 , Processed in 0.078125 second(s), 30 queries , Wincache On.

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表