問題タブ [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.
swfobject - 外部 SWF ファイルを含む SWF の読み込みに関する問題 - SWFObject および ExternalInterface の使用
外部 SWF ファイルを参照する SWF の読み込みに問題があります...
次のコードを使用して、HTML ファイルがすべての SWF と同じフォルダーにある場合、メインの SWF は正常にロードされます。
しかし、HTML ファイルをそのフォルダーからルート フォルダーに移動してリンクを更新するとすぐに、正しく読み込まれません。外部の SWF ファイルに問題があるようです。外部 SWF ファイルの 1 つを直接正常にロードできましたが、メインの SWF に問題があります。すべての SWF ファイルが同じフォルダーにあるため、問題が発生する理由がわかりません。ルート フォルダーにある場合の HTML ファイルのコードは次のとおりです。
このページには、ExternalInterface を使用して actionscript の関数を呼び出すリンクもあるため、それが問題の原因である可能性があります。リンクのコードは次のとおりです。
本当に混乱しているので、どんな助けも素晴らしいでしょう。
iphone - 外部アクセサリフレームワークを使用してiPhoneUIWebViewにHTMLフォームフィールドデータを入力することは可能ですか?
リモートで提供されるHTMLフォームをUIWebViewにロードし、「外部アクセサリフレームワーク」を使用して外部アクセサリからデータを利用できるようになると、そのフォームにデータを入力するiPhoneアプリがあります。現在、データは手動で入力されています。提案されたフローは次のとおりです。
- フォームを含むHTMLページを取得し、UIWebViewに配置します
- 外部アクセサリからデータが利用可能になったら、フォームフィールドに入力します
- フォームを送信する
必要なすべてのデータが外部アクセサリから取得されたときに、外部アクセサリからUIWebViewにデータを「注入」することでこれを行うことは可能ですか?これを実現するために外部アクセサリフレームワークを使用する方法について、良い例を見つけることができないようです。
flash - 誰かがソースを表示したときに、swfobject によって Flash に渡される変数を非表示にする方法はありますか?
swfobject を使用して埋め込まれたいくつかの Flash swfs があり、それらにユーザー ID などのいくつかの変数を渡します。人々がこれらの変数を読み取れないようにするにはどうすればよいですか? swfs を埋め込んだ php ページのソースを表示すると、フラッシュに渡されているすべての変数が表示されます。これらの変数を非表示にする方法はありますか? これを行うには、他にどのような方法がありますか? ExternalInterface を設定し、javascript 関数を呼び出して vars を Flash に渡すことを考えました - これは送信しているデータを効果的に隠しますか?
ありがとう
javascript - Javascript で使用できない ExternalInterface.addCallback に登録された関数
ページで Javascript を呼び出してデータを取得する必要がある Flash ゲームに取り組んでいます。Flash から Javascript を呼び出すことができます。Javascript から Flash 関数を呼び出すと (多くの場合)、そうではありません。
Gaia フレームワークを使用しています。
何が起こるのですか:
- swf は SWFObject で読み込まれます
- Flash ファイルにボタンがあります。クリック
ExternalInterface.call()
すると、Javascript 関数を呼び出すために使用されます。これは機能します。 - Javascript 関数は、 で公開された Flash 関数を呼び出します
ExternalInterface.addCallback()
。 - 時々、Javascript は次のエラーを生成します:
TypeError: myFlash.testCallback is not a function
. - エラーが発生すると、 に登録されているすべての関数に影響し
addCallback()
ます。Gaia とそれに含まれるライブラリの一部は を使用しaddCallback()
、Javascript からこれらの関数を呼び出すと、TypeError も生成されます。 - Flash でボタンを押す前に長時間待っても、エラーは解決しません。
- Flash を定期的に再試行
addCallback()
してもエラーが解決しない - エラーが発生した場合
ExternalInterface.available = true
、ExternalInterface.objectID
Flash 埋め込みオブジェクトの正しい名前が含まれています。 - エラーが発生した場合、
document.getElementById('myflashcontent')
Flash 埋め込みオブジェクトを正しく返します。
追加するために編集:
- この問題は Firefox 3.6 で発生しますが、Chrome や IE8 では発生しません。古いブラウザは試していません。
- Flash Player のデバッグ バージョンを実行しています。
- 私の呼び出しはブロック
ExternalInterface.addCallback()
にラップされています。try...catch
JS エラーが発生すると、catch
ブロックはトリガーされません。サイレント失敗です。 - エラーは、swf がページと同じサーバーからロードされた webhost でテストするときに発生します。
- 設定し
allowScriptAccess = always
ました。 - 設定
flash.system.Security.allowDomain("mydomain")
してもエラーは解決しません。
私のページクラスから:
私のJavascript:
flash - Flash AS3 で URL から変数を取得/取得する方法
したがって、変数を抽出するために Flash ムービーが必要な URL があります。
リンクの例:
http://www.example.com/example_xml.php?aID=1234&bID=5678
aID と bID 番号を取得する必要があります。
ExternalInterface を介して完全な URL を文字列に取得できます
文字列を操作して 1234 と 5678 の数値を取得する方法が不明です。
ヒント、リンク、またはこれに関するヘルプをいただければ幸いです。
javascript - 外部インターフェース
ねえ、私はExternalInterfaceを動作させるのにかなり苦労しています.
あまりにも長い間見ていたため、見逃してしまったことを願っています。
flash_ready 関数は objectID を正しく返しています。私が知る限り、他のすべては順調です。
残念ながら、それを実行すると、基本的に document.getElementById( <movename>
).test() は有効なメソッドではないというエラー (ブラウザーによって異なります) が表示されます。
コードは次のとおりです。
JavaScript:
埋め込み Html (生成):
AS3 :
Swfobject は Google コードを介してインクルードされており、Flash は問題なく埋め込まれているため、問題はありません。
別のサーバーで非常によく似たセットアップが動作していますが、このサーバーでは動作していないようです。これは Hostgator 共有サーバーです。サーバーのせいでしょうか?明らかな構文の問題が見られる人はいますか?
前もって感謝します!
jquery - フラッシュSWFが表示されるまで初期化されません-強制的に初期化できますか?
現在表示されているウィンドウを超えて垂直方向に何倍も伸びる一連の行に約100個のフラッシュグラフ(およびその他のDOMのもの)をレンダリングする必要があるアプリケーションがあります。つまり、ユーザーは下にスクロールしてすべてを表示する必要があります。さまざまなグラフ。
このアプリケーションも動的であり、ユーザーがDOM(ページ上の任意の場所)の値を変更すると、その変更をすべてのFlashグラフに同時に伝播する必要があります。
そこで、すべてのexternalInterfaceコールバックを設定し、非常に重要な「flashIsReady」呼び出しまでJSが開始されないように注意しました。そして、既存のswfを新しいデータでupdate()しようとするまで、うまく機能しました。
動作は次のとおりです。-IE/Foxの両方で(最初は)すべてのswfsがロードされる=良好。-新しいコンテンツでswfsを更新することはIEでは機能しますがFoxでは機能しません=良くありません-新しいコンテンツでswfsを更新することはFoxで機能します--のみ-ページの一番下までスクロールしてから一番上に戻ります--BEFORE- -update()をトリガーしました。
そこで、JSと呼ばれるswfが「フラッシュの準備ができました」と言うたびにトレースを開始しました。Firfoxはswfが表示されるときにのみレンダリングすることに気付きました。そして正直に言うと、それは問題ありません。実際、IEもこれを実行していると確信しています。しかし、問題は、Firefoxがswfを初期化しないだけでなく、まだ表示されていない場合、Firefoxはswfが存在することを認識しないことです(オンロード後を想定)。
そしてその証拠は、次のようなJSエラーが発生することです。
「[FlashDOMID].FlashMethodは関数ではありません」。
ただし、少し下にスクロールして、表示されるまで待ち、突然トレースが点灯し始めます
「フラッシュレディ」、「フラッシュレディ」、「フラッシュレディ」、そしてそれらがすべて準備ができたら、すべてが正常に動作します。
FFは表示されるまでswfを初期化しないと誰かが私に言いました-私はそれを強制できますか?必要に応じてコードを投稿できます...しかし、かなり重い(残りの部分から関連するものを取り除くのは難しい)ので、可能であれば(あなたのために)それを避けたいと思います。
質問は簡単です-あなたはこれが起こったことがありますか?もしそうなら、あなたは解決策を見つけましたか?まだ見えていないswfを強制的に初期化する方法はありますか?みんなありがとう。
java - Flex / Flash4ExternalInterface.call-HTMLからActionscriptに文字列を取得しようとしています
HTMLから文字列を取得し、それをActionscriptに入れる必要があります。
アクションスクリプト:
javascript:
JSP:
レンダリングされたHTML:
javascriptの実行がヒットしたとき
nullが返され、クラッシュします。アラートは表示されず、エラーメッセージは表示されません。「username-label」(document.getElementById())でFirefoxDOMInspectorの検索を正常に実行できます
ポップアップ表示される唯一のアラートボックスはアクションスクリプトアラートボックスであり、内容は空白です。
firfox 3.5ウィンドウ、コンテナはTomcatです。
事前にアドバイス、ありがとうございます。
javascript - JavaScript から FileReference.browse() を呼び出す方法は?
JavaScript から FileReference クラスの browse() メソッドを呼び出そうとしています (ユーザーは、ExternalInterface を使用するテキストをクリックして Flash のメソッドを呼び出します)。
残念ながら、ユーザーの直接的なアクション (ボタンのクリックなど) でなければならないというエラーが表示されます。Google で検索したところ、これが Flash 10 の新しいセキュリティ機能であることがわかりました。
私が見つけた唯一の解決策は、フラッシュ ボタンを配置するか、テキストの上にフラッシュ ボタンを隠して、browse() メソッドを呼び出すことでした。
ブラウザーには JavaScript のみを表示し、すべての Flash コードは JavaScript からのみ呼び出されるようにしたかったのです。
私がそれをしてくれる方法はありますか?
どうもありがとう、ルディ
flash - ExternalInterface.call を使用すると、IE が「オブジェクトはこのプロパティまたはメソッドをサポートしていません」とポップアップする
私はここで夢中になっています。
やろうとするたびに
(これはすべてのブラウザで動作します)
オブジェクトはこのプロパティまたはメソッドをサポートしていません
アラートが表示された後。
私が触れなくても、フラッシュによって生成されたHTMLでさえ起こります...解決策はありますか?!
ありがとう!