問題タブ [externalinterface]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
6413 参照

flash - 外部インターフェイスは利用できません

Flash Player 10を使用するFlashDevelopでプログラムをテストしています.externalInterfaceが必要ですが、この簡単なテストプログラムを実行すると、「ExternalInterface is not available」と表示されます。ここで何が問題になる可能性がありますか?ExternalInterface を機能させるにはどうすればよいですか?

Ps - ところで、このスクリプトをブラウザで実行すると、「External Interface is available」と表示されます。利用できないのは、Flash Player 10 で実行したときだけです。

0 投票する
2 に答える
14031 参照

javascript - Flash AS2.0 と JavaScript/jQuery (ExternalInterface) 通信

JS を使用して、ExternalInterface を使用して Flash AS2.0 音楽プレーヤーにデータを送信しようとしていますが、ExternalInterface に関する適切なチュートリアルやガイドを見つけることができません。JavaScript リンクをクリックしてプレーヤーの現在の曲を変更し、クリックせずにページ/ウィンドウの読み込み時にデフォルトの曲を再生できるようにしたいと考えています。

フラッシュなどでサウンドをロードする際に非常に複雑な答えは必要ありません.JSに何かをフラッシュに送信させるのに多くの困難があり、それが機能するようになったら- if / elseリンクがクリックされたかどうかを判断するためのフラッシュ?

ありがとう

現在のコードを編集します。

AS2.0

JavaScript

HTML

0 投票する
5 に答える
2280 参照

javascript - Javascript で ExternalInterface 定義を取得する

Flash オブジェクトから公開された関数のリストを取得する方法はありますか? たとえば、次のコマンドを実行すると、オブジェクト内のすべてのメソッドのリストを取得できます。

唯一の問題は、ExternalInterfaces API を通じて登録されたメソッドが公開されないことです。関数が存在するかどうか ( object['method']) を試してみると、それが関数であることがわかりますが、この方法ですべての既存のメソッドを推測する必要があります。

注: もちろん、アクション スクリプトにはアクセスできません。

0 投票する
1 に答える
7500 参照

actionscript-3 - Actionscript 3 ExternalInterface、変数をjavascriptに渡しますか?

ExternalInterfaceを使用して変数をjavascript関数に渡すにはどうすればよいですか?

0 投票する
1 に答える
2254 参照

javascript - FlexのExternalInterfaceをIFrameで使用するにはどうすればよいですか?

flexアプリとiframeを並べて(1x2テーブルを使用して)単純なhtmlドキュメントがあります。

フレックスアプリには、クリックすると、ExnternalInterface.callメソッドを使用してjavascript関数「doNavClick(url)」を呼び出すことにより、iframeの「src」プロパティをURLに設定するボタンがあります。

またはそれがアイデアです。

HTMLでiframeオブジェクト宣言をコメントアウトすると、doNavClickの呼び出しが機能します(テストするアラートがポップアップ表示されます)...しかし、iframe宣言が存在する場合、呼び出しを受信することさえありません。これは、iframeがコールディスパッチメカニズムを何らかの形で壊したかのようです。

このためのworkaraoundはありますか?

問題のあるコードは次のとおりです。

--- Main.mxml


...そしてswfアプリを含むhtml/JavaScriptコード:

--- index.html


このコードは、グーグルのURLを含むブラウザアラートをポップアップするだけです。iframe宣言(ID "htmlFrame")のコメントを解除してページをリロードすると、アラートは表示されません。実際、JavaScriptのdoNavClick(url)が呼び出されることはありません。

更新:興味深い.... index.htmlのDOMを調べると(これにはfirebugを使用します)、本体には通常、テーブルとスクリプトの2つの子ノードがあります。iframe宣言が存在すると、スクリプトの子が消えます...これが、ExternalInterface.callがどこにも行かない理由を説明しています。iframeを含めると、スクリプトオブジェクトが削除されるのはなぜですか?

UPDATE2:doNavScript(url)スクリプトをドキュメントの「ヘッド」に移動すると、この問題が修正されます。それはまるでiframe宣言が他の子供たちが体の一部になるのを防いでいるかのようです...私はこれが実際に起こっていることであると言っているのではなく、これが症状であるように見えるだけです。

0 投票する
2 に答える
1767 参照

javascript - バイト文字列をExternalInterface.callに返すと、エラーがスローされます

私はオープンソースプロジェクトDownloadifyに取り組んでおり、これまではExternalInterface.callコマンドに応答して文字列を返すだけで処理していました。

JSZipとDownloadifyを一緒に使用してテストケースをまとめようとしています。その結果、Zipファイルがブラウザーで動的に作成され、を使用してディスクに保存されFileReference.saveます。しかし、これは私の問題です。

JSZipライブラリbase64は、Zipのエンコードされた文字列、または生のバイト文字列のいずれかを返すことができます。ExternalInterface.call問題は、コマンドに応答してそのバイト文字列を返すと、次のエラーが発生することです。

ActionScript 3:

queue_nameJSで正しいインスタンスを識別するために使用される文字列はどこにありますか。

JavaScript:

バイト文字列の代わりに通常の文字列を返すと、呼び出しは正しく機能します。サイズが大きくなるデコーダーbase64を含める必要があるため、使用を避けたいと思います。base64swf

最後に:私はAS3Zipジェネレーターを探していません。私のプロジェクトでは、その部分をJavaScriptで実行することが不可欠です。

私は確かにAS3プログラマーではないので、さらに詳細が必要な場合はお知らせください。

0 投票する
2 に答える
1770 参照

c# - C#フラッシュ-ExternalInterface

フラッシュを埋め込むために、WinFormsアプリケーションでActiveXコントロールをホストしています。

特定のswfファイルで使用できる表示可能なExternalInterface関数のリストを取得する良い方法はありますか?

サードパーティのswfファイルを使用しており、ソースにアクセスできません。

C#(またはコード)からそれが不可能な場合、それを実行できるツールはありますか?

答え:私が見つけた唯一の方法は、フラッシュ逆コンパイラーを使用して、次の行を探すことです。

私は一番上の答えを助けの答えとしてマークしています。

0 投票する
1 に答える
2582 参照

flash - as2で外部ExternalInterface呼び出しをフラッシュする

swfが埋め込まれているhtmlからテキストを取得する必要がある外部インターフェイス呼び出しがあります。

変数名をテキストボックスに入れると、正しいテキストが得られます。

clickTag で geturl を使用すると、状況によっては機能します (エンコードされていない clickTag URL)。未定義の場合もあります (エンコードされた clickTag URL)。使用すると、テキストボックスname.toStringで開くhttp://www.someurl.com/[type%20Function]か表示されます[type%20Function]

したがって、clickTag URL を渡すときにエンコードの問題が発生していると思われます。私の質問は、このオブジェクトを文字列に変換するか、オブジェクトの内容を文字列変数に割り当てて、これをすべて回避するにはどうすればよいですか?

ありがとう

0 投票する
1 に答える
835 参照

flash - Flash JSFL ExternalInterface の問題

JSFL から SWFPanel への呼び出しを取得して、ExternalInterface API 経由で動作させることができません。私は次のようにここの指示に従っています:

SWF パネルのシーン 1 アクション 1 で、コールバック関数を ExternalInterface に登録します。

次に、JSFL で、swf パネルを反復処理して swf パネルを見つけ、appendTrace メソッドを次のように呼び出します。

myPanel.call("appendTrace", traceString);は呼び出されますが、何もトレース、追加されず、エラーもスローされないため、ExternalInterface が appendTrace メソッドを呼び出していないように見えます。すべてが適切にセットアップされているようですが、いくつかのことを試しましたが、機能していません。このアプローチの一般的な落とし穴は何ですか?

0 投票する
4 に答える
2765 参照

javascript - Javascript で ActionScript と対話できないのはなぜですか

音楽を再生する非常に単純なフラッシュ プログラムがあります。再生一時停止ボタンと曲の現在位置を示すタイマーで構成されています。通常のフォームボタンを使用して曲を一時停止または再生できるようにしようとしています。

セクションに入れているJavascript関数は次のとおりです。

そして最後に、私が使用しているボタンは次のとおりです。

ボタンをクリックすると、Firefox のエラー コンソールに「Flash is null」と表示されます。