aardio官方社区

 找回密码
 注册会员

QQ登录

只需一步,快速开始

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

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

发布者: Jacen.He | 发布时间: 2012-12-4 04:13| 查看数: 33822| 评论数: 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 创建窗口。

  源代码 [ aardio ]

import win.flashBox 
var flash = ..win.flashBox(text="aardio Form";right=599;bottom=399)
flash.movie = "http://update.aau.cn/aardio/samples/transparent.swf";

flash.show() 
win.loopMessage();


创建透明窗口方法二:
--------------------------------------------------------------
可以在已创建的winform窗口对象上显示透明动画(支持custom控件创建的子窗口)


  源代码 [ aardio ]

import win.ui;
/*DSG{{*/
var winform = win.form(text="迤明FLASH";right=562;bottom=355;border="dialog frame";parent=...)
winform.add(
button={cls="button";text="button";left=296;top=238;right=488;bottom=301;z=2};
combobox={cls="combobox";left=76;top=51;right=229;bottom=77;edge=1;items={};mode="dropdown";z=3};
edit={cls="edit";text="edit";left=82;top=99;right=493;bottom=222;edge=1;multiline=1;z=4};
flashWnd={cls="custom";text="custom";left=28;top=17;right=538;bottom=333;autosize=1;center=1;edge=1;transparent=1;z=1}
)
/*}}*/ 

winform.show(); 

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

win.loopMessage(); 


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


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

  源代码 [ aardio ]

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

// 导出接口函数可供Flash调用
flash.external = {
	//关闭
	resize = function(param){
		var cx,cy = string.match(param,"(\d+)\,(\d+)");
		flash._form.setPos(0,0,cx,cy);
	} 
	close= function(){
		flash._form.close();
	}
	//退出
	quit= function(){
		flash._form.close();
	}	
	//最小化
	minimal = function(){
		flash._form.hitmin();
	}
	//拖动
	moving = function(){
		flash._form.hitCaption();
	}
	//注册
	register = function(){
		web.util.ieBrowser("http://www.aau.cn/member.php?mod=register")
	} 
	//充值 
	charge = function(){
		flash._form.msgbox("免费免费了!")
	}
	//修复
	repair = function(){
		flash._form.msgbox("修复已完成!")
	} 
	//设置
	settingr = function(){
		flash._form.msgbox("本功能还没时间写!")
	} 
	//开始
	start  = function(){
		flash.play();
	} 
	//动画播放完触发
	["end"] = function(){
	
		//设置进度条 
		flash.xcall("setProgressTotal",0);
		flash.xcall("setProgressPart",0); 
		var progress = 0;
		tmid = flash._form.addtimer(
			10/*毫秒*/,
			function(hwnd,msg,id,tick){//定时执行代码
				progress++;
				flash.xcall("setProgressPart",progress);
				flash.xcall("setProgressTotal",progress);
			}
		);

	}
}

//显示窗口 
flash.show() 

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

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

  源代码 [ aardio ]

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

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

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

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

winform.show() 
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



  源代码 [ aardio ]

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

var flash = ..win.flashInBox(  text = "flashInBox 去掉试用水印"  )
flash.show() 
flash.putMovie( $"~\example\Flash\testCall.swf") 
	
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-1-21 12:34 , Processed in 0.180625 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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