2011-07-02 12 views
1

こんにちは私はちょうどAdobe Airで遊んで始めました。私はAngularというJavaScriptライブラリを使っています。Adob​​e Airでの機能の使用

しかし、このラインは、Adobe Airの砂箱をトリガーライブラリにあります:Adobe AIRのサポートページで

fn = Function('s', code); 

この文があります:新機能へ

コール(パラメータ、体が)インライン関数宣言に置き換えるか、ページロードイベントが処理される前にのみ使用できます。

インライン関数宣言の意味と、それを使って同じ効果を達成する方法を教えてください。

おかげ

evalを使用し、他のブロックされた方法は、アプリケーションサンドボックスでは、Adobe AIRで動作するだけではできません

答えて

3

JavaScriptフレームワーク。

詳細については、このドキュメントを参照してください。しかし、本質的に、フレームワークを使用するページをセカンダリフレームに読み込むことで、これを動作させることができます。 Airのトップフレームは常にアプリケーションサンドボックスと見なされますが、その他のフレームは非アプリケーションモードで実行されるため、ブロックされたすべてのjavascriptメソッドにアクセスできます。

http://help.adobe.com/en_US/air/html/dev/air_htmldevguide.pdf

ここ

を「あなたのHTMLベースのアプリケーションの設定の概要」セクションを検索するには、私はこの問題を回避

<body> 

    <iframe src="/blank.html" width="100%" height="0" scrolling="no" id="top" ></iframe> 
    <iframe src="http://www.example.com/air/home.html" documentRoot="app:/" sandboxRoot="http://www.example.com/air" allowCrossDomainXHR="true" width="100%" height="720" scrolling="no" id="bottom"> 
    </iframe> 

</body> 

を取得するために使用しているフレームセットの一例ですこの魔法は、documentRoot属性とsandboxRoot属性にあります。 documentRootとして設定されているものは、sandboxRootで使用されるドメインを置き換えます。その結果、sandboxRootは有効なパスである必要はありません。

この例では、トップフレームは、アプリケーションからblank.htmlというファイルをアプリケーションサンドボックスにロードします。したがって、このファイルは、アプリケーションサンドボックスに権限があるファイルシステム関数などを呼び出すことができます。

2番目のフレームはアプリケーションディレクトリから "home.html"をロードしますが、非アプリケーションのサンドボックスにロードされます。これには、Safari 4で動作するJavaScriptフレームワークをほとんど含めることができますAIRランタイムの最新バージョン)。ただし、このフレームは、ファイルシステムアクセスなどの安全なAIR関数を呼び出すことはできません。

2番目のフレームからファイルシステム関数やその他の安全なメソッドを呼び出す場合は、上で参照したドキュメントに記載されているサンドボックスブリッジを作成する必要があります。

これが役に立ちます。