2011-01-03 16 views
1

Adob​​e Airは初めてのことですが、質問は明らかかもしれませんが、苦労して苦労する日はありませんでした。ExtJS内蔵のアプリケーションをAir Sandboxに読み込む方法

私は、必要なコードが埋め込まれたWebアプリケーションを構築しようとしています。起動プロセスを構築し、デプロイされたWebアプリケーションから実行時に必要なリソースを取り出し、メインアプリケーションに注入します。 2つの異なるサンドボックス(主な航空アプリの場合は親サンドボックス、配備されたアプリの場合は子サンドボックスとしてのiframe)を構築しました。ここで私がやったものだ:

air.html

<html> 
<head> 
    ... 
    <script type="text/javascript" src="/scripts/app/load.js"></script> 
</head> 

<body id="baseBody" onload="Load.init();"> 
    <iframe 
     id="sandbox" 
     sandboxRoot="http://localhost:8080/webapp/" 
     style="width:0;height:0;display:none;" 
     ondominitialize="Load.bridge();"> 
    </iframe> 
</body> 
</html> 

load.js(親サンドボックス)(子サンドボックス上のJSP)

Load = function() { 
    return { 
     sandbox: null, 
     bridge: function() { 
     document.getElementById('sandbox').contentWindow.parentSandboxBridge = { 
      initChild: function() { 
       sandbox = document.getElementById('sandbox').contentWindow.childSandboxBridge; 
       sandbox.loadSignin(); 
       sandbox.buildParent(); 
      }, 
      buildBase: function() { 
       signin = new App.Signin({ 
        ... 
       }); 
       new Ext.air.Window({ 
        ... 
        items: [signin], 
        ... 
       }); 
      }, 
      importing: function(url) { 
       // Creating Script tag and Append it to Head tag 
      } 
     }; 
     }, 
     init: function() { 
     document.getElementById('sandbox').src = './load'; 
     } 
    }; 
}(); 

負荷

<html> 
<head> 
    <script type="text/javascript" src="http://localhost:8080/webapp/scripts/app/load.js"></script> 
</head> 

<body onload="Load.init();"></body> 
</html> 

負荷.js(子サンドボックス)

私は、このような(、単にURLを挿入することにより、AJAXコンテンツを取得し、コンテンツを渡し、evalのを渡して、前述した「ライン」でさまざまなことを試してみた0

signin.js

Ext.namespace('App.Signin'); 

App.Signin = Ext.extend(Ext.form.FormPanel, { 
    initComponent: function() { 
     var formPanelConfig = { 
     items: [{ 
      ... 
     }] 
     }; 

     Ext.apply(this, Ext.apply(this.initialConfig, formPanelConfig)); 
     App.Signin.superclass.initComponent.apply(this, arguments); 
    } 
}); 

)親のサンドボックスにコンテンツを追加します。どのようなものであっても、私はの式の結果 'App.Signin' [未定義]はコンストラクタではありません。そして、それはAir IntrospectorのDOM要素でも利用できません。

私はonLoadイベントの前にjavascriptを読み込むことについてどこか読んでいますが、どこで正確に、さらに重要なのかを思い出すことができませんでした。 onLoadの前に私のアプローチはありませんか?

この問題を解決するためのガイドを教えてください。

答えて

0

例「単純なタスク」(AIR)であってもよいが、まあ、私は全体の出発構造を構築した

+0

uのを助けることができる、私は単純なタスクを研究から、親と子のサンドボックスを初期化する意味します。しかし、問題は、そのアプリのすべてがローカルであり、* Air Sandboxにあることです。リモートサンドボックス*から*エアサンドボックスに余分なクラスをロードする必要があります。 – Khosrow

関連する問題