虽然Flash动画在现代浏览器环境中已经没有生存空间,但作为桌面软件的动画控件仍有剩余的价值。 系统不再包含Flash控件。 如果你的软件用户自己去找旧版本的控件,啃了几万个字的教程,自己探索Flash播放器的复活,不管别人有没有这个耐心,只是更改版本介绍如何更容易地复活Flash播放器。 Flash插件)嵌入到打包的只有3MB的WebKit(wke )内核浏览器组件中,可以生成独立的EXE文件,并与com.flash界面兼容。 这里需要使用web.kit扩展库的web.kit.flash。 让我们看一个简单的例子。
import win.ui;/* dsg { { */var winform=win.form ( text=’ web.kit.flash视频'(() }/importweb.kit.flash; varflash=web.kit.flash(winform ); 在winform.show( //函数为flashflash.external={ func=function { } )//中指定初始化属性,然后在指定movie属性之前指定flash.bgcolor=’ transparanspare flash.wMode=’transparent ‘; flash.flashVars={a=’v1 ‘,b=’v2′}; //更改此属性或调用( render ) )函数才能打开Flash动画。 flash.movie=’ https://update.aa rdio.com/v10.files/demo/transparent.swf ‘; //Flash控制函数varflashversion=flash.get variable ( ) $version ) winform.msgbox(‘flash版本: ‘ flashversion ) ) 上面是桌面软件的完整代码。 可以在aardio中创建新的空白项目,将上面的代码复制到main.aardio中,然后按“发布”按钮生成独立的EXE文件。 若要在浏览器控件中播放Flash,Flash的地址必须传递到从HTTP服务器访问的网址。 打开本地文件时,这在aardio中非常简单,只需要一个代码。 如下所示。
import wsock.TCP.simple http server; flash.movie=wsock.TCP.simple http server.starturl ( ‘/RES/test.swf ‘ ); ‘/res/test.swf ‘是加入aardio项目目录的文件,’/res/’可以是嵌入在EXE中的资源目录。 不需要更改代码。 aardio自动支持此“/res/test.swf”文件的内存加载,并可以生成独立的EXE。 另外,可以在运行时自动创建HTTP服务器端,分配访问此文件的网址——,HTTP服务器端自动获取可用端口。 不会发生端口冲突。 wsock.tcp.asynHttpServer也可以创建嵌入式HTTP服务器。 不同之处在于,wsock.tcp.asynHttpServer是单线程异步服务器,而wsock.tcp.simpleHttpServer是多线程服务器。 aardio允许使用任何内存数据虚拟化可通过HTTP访问的文件地址,如com.cube3扩展库。
importWsock.TCP.Asynhttp服务器; HTP server=wsock.TCP.asyn http server (; HTP server.run ( { [ ‘/cube3. swf ‘ ]=$ ‘~\ lib\com\cube3.RES\cube3. swf ‘ } ); flash.movie=http server.geturl (/cube3. swf ); 上面的代码是访问嵌入在HTTP服务器虚拟文件地址中的内存中的swf数据。 请注意,如果在文件路径前加上$,则该文件的内容将编译到程序中并返回二进制字符串。 扩展库com.cube3是魔方表达式的动画组件,该扩展库最初是使用com.flash实现的。 目前正在使用web.kit.flash恢复此扩展库。 com.cube3的完整源代码如下:
import web.kit.flash; importWsock.TCP.Asynhttp服务器; import string.conv; namespace com; classcube3{ctor、winform、param}{this=.web.kit.flash、winform}; (; start=function(param ) if ) param ) varFM=function ) move ) if )! # move (返回; move=. string.conv.from wide ( move ); move=.string.replace(move,’\n ‘,’\n ‘ ); move=.string.replace(move,’\t ‘,’ ); 返回移动; } param.init move=FM ( param.init move; param.move=FM(param.move; param.speed=param.speed; param.mirror=param.mirror; this.flashVars=param; } this.movie=http server.geturl (/cube3. swf ); } namespace cube3{ http server=. wsock.TCP.asyn http server (; HTP server.run ( { [ ‘/cube3. swf ‘ ]=$ ‘~\ lib\com\cube3.RES\cube3. swf ‘ } ); 让我们看看调用com.cube3的效果。
在aardio扩展库管理器中,双击com.cube3扩展库以打开上面的示例源代码。