0

内部でフラッシュを使用する WRT アプリを実行しています。問題は、javascript を介してパラメーターを swf に渡す必要があることです。だから私はJavaScriptのような関数を作成しました

function returnFunction() { return "test"; }

私のSWFには次のコードがあります:

import flash.external.ExternalInterface;

var result:Object = ExternalInterface.call("returnFunction");
versionTxt.text = "Returned: " + String(result);

したがって、これは、ローカル マシン (フラッシュ プレーヤーのセキュリティを変更する必要がありました) で実行している場合と、サーバーでホストしている場合に正常に機能します。しかし、携帯電話で実行する必要があるため、WRT アプリでラップしましたが、テストすると次のように返されます。

戻り値: null

ここでは選択肢がありません。セキュリティ上の問題ですか? 私はすでにWRTでこのようなものを実行していると思うので、それが可能であると確信しています.ここで何が欠けているのかわかりません:/

4

1 に答える 1

1

おそらく、JavaScript または WRT が値を使用して、ExternalInterface を介して公開した関数にコールバックするように設定できます。

閃光:

import flash.external.*; 

//Add a function call that can be accessed from javascript
ExternalInterface.addCallback("operationComplete", operationComplete);

//invoke the javascript operation
function startExternalOperation(){
  ExternalInterface.call("operation");
}

//javascript invokes this function when it is done
function operationComplete(result:Object){
  //do something with results
}

JavaScript:

function operation() {
  var result;

  //do something and populate result

  document.getElementById("swfObject").operationComplete(result);
}

ノキアリファレンス

于 2011-02-10T19:16:08.683 に答える