1

私が理解しているように、ActionScript は主に Flash Web サイト (Flash ベースのゲームなど) のグラフィック出力を制御するために使用されます。

ただし、グラフィック出力に関連しないタスクを ActionScript で実行したいと考えています。ファイルのアップロードなど、ブラウザーの互換性の理由から ActionScript に適したタスク。

したがって、JavaScript の代わりに ActionScript を使用したり、ファイルのアップロードなど、JavaScript では不可能なタスクを実行したりすることは可能ですか?

以下は可能ですか?

  • HTML ボタンを押して ActionScript を実行しますか?
  • HTML/JavaScript から ActionScript に情報を送信しますか?
  • ActionScript でグラフィック出力なしで情報を処理しますか?
  • ActionScript から HTML/JavasScript に情報を出力しますか?

ActionScript で自分のやりたいことができるかどうか知りたいです。

呼び出す適切な関数の図を用意します。

4

2 に答える 2

1

ExternalInterface はあなたの友達です: http://help.adobe.com/nl_NL/Flash/CS5/AS3LR/flash/external/ExternalInterface.html

ExternalInterface を使用する際のヒント:

  • allowScriptAccessHTML埋め込みコードで「常に」に設定
  • Flash の id が HTML コードに含まれていることを確認してください

簡単な例:

1. JavaScript からフラッシュに値を取得する

// actionscript 3 code
if (ExternalInterface.available)
{
  var url:String = ExternalInterface.call("document.location");

  // output to textfield
  var t:TextField = new TextField();
  addChild(t);
  t.text = url;
}

2. フラッシュからパラメーターを使用して関数を呼び出す

// actionscript 3 code 
if (ExternalInterface.available)
{
   var result:String = "Flash rocks"
   ExternalInterface.call("alert", result);
}

3. JavaScript から Flash へのパラメーターを指定して関数を呼び出します。

// javascript
window.onLoad = function()
{
   document.getElementById('flashId').doSomething("javascript rocks");
}

.. と

// actionscript 3

if (ExternalInterface.available)
{
   ExternalInterface.addCallback("doSomething", handleSomethingFromJavascript);// links js function to as3 function
   function handleSomethingFromJavascript(value:String):void
   {
      // output to textfield
      var t:TextField = new TextField();
      addChild(t);
      t.text = value;
   }
}

統合がほとんど無痛であることがわかるように、Flash と JavaScript の間で多くのことを行うことができます! 唯一の注意点は、フラッシュ内では ExternalInterface を使用できないため、ブラウザーでテストする必要があることです。を使用して透明な Flash オブジェクトを作成できますwmode="transparent"display:noneまたはvisibility(css)を使用することはできません。フラッシュが実行されないか、動作が遅くなるためです。確実に実行し続けるposition:fixedには、ページの隅などに配置します (css)。ブラウザーは、画面外または非アクティブ (つまり、非アクティブなタブ) のときに、一種のスリープ モード (低速) でフラッシュ オブジェクトを実行します。

于 2012-09-16T17:58:59.003 に答える
1

JavaScript を actionscript に実際に置き換えることはできませんが、それを操作することはできます。

「HTML ボタンを押して ActionScript を実行しますか?」- はい、可能ExternalInterface.registerCallbackです。ただし、多くのアクション (iirc、ファイル ブラウザーを開く) は、フラッシュでのユーザー インタラクションでしか実行できないため、そのためにはフラッシュ ボタンが必要になります。

「HTML/JavaScript から ActionScript に情報を送信しますか?」また、externalInterface または flashvars を介して (ただし、起動時のみ)。

「ActionScript でグラフィック出力なしで情報を処理しますか?」- プログラミング言語ですからね。何を思っていたんだ?

「ActionScript から HTML/JavasScript に情報を出力しますか?」- はい、ExternalInterface 経由でも。

于 2012-09-16T10:27:59.127 に答える