2

現在swf10環境にあるオーディオレコーダーコンポーネントを使用しています。これは、オーディオの録音中にマイクアクティビティレベルと他のマイクAPIを使用します。現在、アプリケーションをdhtmlランタイムに変換しています。dhtmlでswf10コンポーネントを使用することは可能ですか?

4

1 に答える 1

2

OpenLaszlo には、まさにそれを行うサンプル アプリケーションあります

musicdhtmlの例の JSP ページに示されているように、2 つ目の OpenLaszlo SWF アプリケーションを作成し、それを HTML ページに埋め込む必要があります。

lz.embed.swf({url: 'audiokernel.lzx?lzt=swf', bgcolor: '#eaeaea', width: '0', height: '0', id: 'audiokernel'});
lz.embed.dhtml({url: 'main.lzx?lzt=object&lzr=dhtml&_canvas_debug=false', bgcolor: '#ffffff', width: '100%', height: '150', id: 'lzdhtmlapp'});

ご覧のとおり、audiokernel.lzx は幅と高さが 0 に設定されているため、非表示になっています。両方のアプリケーションの統合はlz.embed.audiokernel.callMethod()、SWF アプリケーションから呼び出しlz.Browser.callJS()、DHTML アプリケーションで使用することによって実現されます。

これは audioplayer.lzx の再生ボタンで、ボタンがクリックされたときに audioplayer の再生メソッドがどのように呼び出されるかを示しています。

<button width="40" height="22" 
        onclick="lz.embed.audiokernel.callMethod('audioplayer.play()')" >

そして、onframeaudioplayer.lzx のハンドラー:

<handler name="onframe" args="f">
    //Debug.write("Got frame", f);
    lz.Browser.callJS('setCanAttr', null, 'frame', f); 
</handler>

を使用lz.Browser.callJS()すると、DHTML アプリケーションの任意のメソッドを SWF ランタイム アプリケーションから直接呼び出すことができます。DHTMLcanvasは、JavaScript 名前空間でグローバル変数として定義されます (あまり良い方法ではありません)。を使用する場合、DHTML のビューで設定した ID を持つすべての要素をターゲットにすることができますlz.Browser.callJS()

于 2012-10-24T11:10:13.530 に答える