3.dynaload.js 封装

硕正软件 1.0.107.0 版的 dynaload.js 作了改进, 通过添加 prototype 原型函数、自动生成侦听事件脚本, 使得 ppapi 的书写方法和 IE、npapi 完全一致了。
如下是 dynaload.js 和 ppapi 有关的二处关键段落.
1.为 object 添加 func( ) 函数:

    #56#//让 ppapi 语法兼容 npapi：为 <object> 添加 func( ) 函数
    if($B.ppapi) {
      Object.prototype.func = function(funcname, para) {
        return this.postMessageAndAwaitResponse([funcname, para]);
      }
    }

2.为 object 添加事件侦听、复用页面上的 OnReady( ) 和 OnEvent( ):

    #118#if($B.ppapi) { //为 ppapi 添加事件侦听函数, 在其中直接调用 OnReady、OnEvent, 达到语法和 npapi 兼容的目的
     str += '\n<script>\n' + id + '.addEventListener("message", handleMessage' +id+ ', false);\n'
     str += 'function handleMessage' + id + '(message) {\n if(message.data.name=="OnReady") OnReady("' +id+ '");\n else if(message.data.name=="OnEvent") OnEvent("' +id+ '", message.data.event, message.data.p1, message.data.p2, message.data.p3, message.data.p4); \n }\n';
     str += '</script>';
    }