aardio 文档

aardio 范例: WebView2 加载开源 Flash 播放器

//开源 Flash
//调用开源 Flash 播放器 Ruffle
import inet.http;
import web.ruffle;
import win.ui;
/*DSG{{*/
var winform = win.form(text="WebView2 加载开源 Flash 播放器";right=966;bottom=622)
winform.add()
/*}}*/

import web.view;
var wb = web.view(winform,,"--disable-web-security"/*允许跨域*/);

//支持全屏
wb.onFullScreen = lambda(enabled) owner.fullscreen(enabled);

wb.external = {
    getSwf = function(){ 
        //上面创建 web.view 对象时添加参数 "--disable-web-security"启用跨域才能直接指定跨域 swf 网址
        return "https://update.aardio.com/v10.files/demo/transparent.swf";

        //可返回包含 SWF 文件二进制数据的数组、SAFEARRAY,buffer
        return com.SafeArrayV( inet.http.get("https://update.aardio.com/v10.files/demo/transparent.swf") );

        //本地文件可以直接返回 buffer 
        return string.loadBuffer("\res\tet.swf");
    };
}

wb.html = /******************************
<html><head>
    <meta charset="utf-8" />
    <title>Flash 播放器:Ruffle </title> 
    <script src="<?
    /*
    用 web.ruffle 扩展库是为了把 HTML 代码与 aardio 代码写在一起,
    如果创建了 aardio 工程,只要简单地将所有网页以及 ruffle.js 添加到工程的资源目录内,
    然后用 wsock.tcp.simpleHttpServer.startUrl() 转换为网址就可以了。 

    这里用的是 aardio 模板语法: https://www.aardio.com/zh-cn/doc/language-reference/templating/syntax.html
    */ 
    = web.ruffle.getUrl("/ruffle/ruffle.js")
    ?>"></script> 
</head>
<body style="width:100vw;height:100vh;margin:0;">  

<div id="container" style="width:100%;height:100%;margin:0;--logo-display:none;"></div>
<script>  
    (async ()=>{

        const ruffle = window.RufflePlayer.newest();
        const player = ruffle.createPlayer();

        player.style.width = "100vw";
        player.style.height = "100vh";

        const container = document.getElementById("container");
        container.appendChild(player);

        let config = {  
            parameters: "", //自定义 flashvars,例如 "key1=value1&key2=value2"
            allowScriptAccess: true,
            scale: "showAll",
            quality: "high",
            letterbox: "on"
        };

        let dataOrUrl = await aardio.getSwf();
        if( typeof dataOrUrl == "string" ) config.url = dataOrUrl;
        else config.data = dataOrUrl; 
        player.load(config);
    })();
</script>
</body> 
******************************/

winform.show();
win.loopMessage();
Markdown 格式