javascriptからmy swfのメソッドにコールバックしています。 Firefoxでは問題なく動作しますが、クロムで渡される2番目のパラメータは常にnullとして受け取りますか?クロムのAS3 javascriptコールバックの問題
javascriptをデバッグしたところ、すべてがうまくいき、swfに渡される2つの値が、swfへのコールバックが行われた時点で正しいことがわかりました。
私はこれがクロスドメインの問題かもしれないと思っていましたが、それが事実であるかのように、swfのメソッドはまったく呼び出されません。 2番目の値はイメージのバイナリ文字列表現で、渡される文字列の長さは101601です。したがって、渡すことができるデータ量に制限があるかどうか疑問に思っていますか?最初のパラメータは、ファイルの種類を表すはるかに小さい文字列で、これは常に正常に受信されます。
私が言ったように、奇妙なことは、それはFirefoxで完璧に動作しますか?
注 - これは文字列の長さが133に過ぎず、それでもまだ失敗する、もっと小さな画像(愚かなことに、私がこれを書いたまではテストしなかった)で試したところです。だからそれを支配する。
AS3のドキュメントもチェックしましたが、このような制限はありません。
文字列は、FileReaderクラスのreadAsBinaryString()メソッドを使用して生成されています。私が知っている限り、これはバイナリのUTF 16文字列表現を出力します。私はこれが問題ではないはずだと思っていますが、これはまだ文字列であり、エンコーディングはデコードに本当に影響します。もちろん
Javascriptを
var readFile = function(file)
{
var reader = new FileReader();
reader.onloadend = function(evt)
{
alert(reader.result.length);//this outputs the correct length
alert(reader.result); //this outputs the binary encoded as a String
swf.addImage(file.type, reader.result);
}
reader.readAsBinaryString(file);
}
AS3
ExternalInterface.addCallback("addImage", addImageHandler);
と
private function addImageHandler(type:String, file:String):void
{
trace("type: ", type);//this traces the type correctly
trace("file: ", file);//this traces out null in chrome, but traces the binary string in firefox
}
あなたには、いくつかのコードが含まれる場合は、より高速な答えを得る可能性があります。あなたが解決策を見つけることを願っています。 – Bemmu
ありがとう、うまくいけば、これは役に立ちます – barry
私は以下の質問に答えました – barry