yoshiweb.NET

Flash / JavaScript Integration Kit の使い方

Flash / JavaScript Integration Kit
JavaScript と Flash でデータとかやり取りとかできそうなヤツ。

Flash / JavaScript Integration Kit の使い方↓

HTML から swf 内の function を実行する方法
■ Flash 作業━━━━━━━━━━━━━━━━━━━━━━━━
1. Flash の中に HTML から実行する functon を作ります。

2. Flash の作業デレクトリ(Flaファイルと同じフォルダ)に
source > flash > actionscriptフォルダの中の「comフォルダ」を中身ごとコピーします。

3. fla ファイルに com フォルダの中のクラスファイルを読み込む ActionScript を追加します。
import com.macromedia.javascript.JavaScriptProxy;
var proxy:JavaScriptProxy = new JavaScriptProxy(_root.lcId, this);


4.パブリッシュして swf を書き出します。
※2の com フォルダはサイト公開時には必要ありません。

■ HTML 作業━━━━━━━━━━━━━━━━━━━━━━━━
1. Web ディレクトリに「 installation フォルダ」の中の
「 JavaScriptFlashGateway.js 」と「 JavascriptFlashGateway.swf 」を追加します。

2. HTML に Javascript を追加します。



3. SWF を表示する JavaScript を追加します。


4. 以上で Javascript から Flash 内に作った function を実行できると思います。
実行

3E4D - htmlからswf内のメソッドの呼び出し方
投稿日 : 2005年06月26日 - yoshiweb - カテゴリ: Flash

コメント

投稿者 : あじゃ

下記URLのサンプルの「import com.macromedia.javascript.JavaScriptProxy;」で「 'com.macromedia.javascript.JavaScriptProxy' がロードされませんでした。」のエラーが出てしまいます。
Flash MX が Pro版 でないのが原因なのか?

・Using the Macromedia Flash / JavaScript Integration Kit
http://www.communitymx.com/...
2005年09月01日 09時43分07秒

投稿者 : yoshiweb

こんにちは、あじゃさん。
Windows 版の Flash MX 2004 は asファイルが BOM つきの UTF-8 で保存されてないとダメらしいです。
com フォルダの中の JavaScriptProxy.as と JavaScriptSerializer.as を BOM つきの UTF-8 で保存できるテキストエディタや SEPY などの ActionScript エディタで保存しなおしてはどうでしょう。

SEPY*
http://www.sephiroth.it/pyt...
日本語化ファイル
http://www.yk.rim.or.jp/~su...
BOM について
http://www.atmarkit.co.jp/a...
2005年09月03日 19時52分00秒

投稿者 : yoshiweb

日本語は送れないのかな?変な数字になった...。
2005年09月05日 11時34分45秒

投稿者 : yoshiweb

JS を改造すれば変な数字にならないようです。
http://www.ark-web.jp/blog/...
http://staff.ark-web.jp/~ta...
2006年02月17日 16時58分58秒

投稿者 : ゴン太

RSSリーダーのようなものを作成しようと思い、flashのXMLオブジェクトでrssファイルを読込み・解析した結果を、htmlに記述したjavaScriptの関数に引数として渡したのですが、この場合は上記の対策では日本語がうまく渡りませんでした。

以下、自分で試した結果です。

1. 読込むrss(xmlファイル)とhtmlのエンコードをUTF-8とし、文字列を渡す前に、Flash側でストリングをescape()で、URLエンコードしてやれば、Netscape 7とFirefoxではOK。IE 6、Operaでは文字化けする。

2. 読込むrss(xmlファイル)とhtmlのエンコードをUTF-8あるいはshift-JISとし、文字列を渡す前に、URLエンコードしないでそのままストリングを送った場合、IE 6のみOK。FirefoxとNetscapeではjavaScriptが呼ばれない。Operaでは文字化け。
javaScirptは苦手なので、できればActionScriptをメインに使って、Ajaxっぽいことをしたかったのですが・・・。どなたか、回避方法をご存知でしたら、ご教授お願いします。
2006年02月23日 22時25分56秒

投稿者 : niku

初めまして。ほとんど情報がないのでここで質問させていただきます。
JavaScript Integration Kitを使って、
1:javascriptでflash呼び出し
2:flashからhtmlファイルを呼び出したものを、その後javascript(innerhtml)に変数としてわたし呼び出し→htmlに表示される
とajaxライクな事をしようと思っていますが、
呼び出すhtmlが大きいと(と言っても数十行)、javascript側で受信完了せずにinnerhtmlをしようとしてるのか表示されません(小さいとOK)。ajaxでは「readyState」ステータスで受信完了を監視していますが、このツールではどういう風にすればよいのでしょうか?どなたかご教授お願いいたします。
2006年05月20日 07時56分30秒

投稿者 : niku

>初めまして。ほとんど情報がないのでここで・・・
すみません上記の書き込みは無視してください。(削除してもらってもかまいません)全く見当違いなことを書き込んでしまいました。誠に申し訳ございません
2006年05月22日 12時20分03秒

投稿者 : yoshiweb

>ゴン太さん
返事が遅くなってしまいすみません。JavaScirptはあまり得意な方ではないのでわかりませんでした。引き続きわかる方がいましたらコメントよろしくお願いします。

>nikuさん
実はJavaScript Integration Kitをあまり使い込んでいないので詳しくないのですが getURL()でJavaScriptを実行するときに文字数が多いと実行されないのと同じ状況かな?と思っています。検証しないまま答えているので違うかもしれませんが...。
http://www.adobe.com/jp/sup...
Flash 8だったらExternalInterfaceクラスで実現できるかも。
2006年05月24日 18時47分25秒

投稿者 : niku(食いたい」・・)

>yoshiweb様
返信ありがとうございます。
「getURL()でJavaScriptを実行するときに文字数が多いと・・」そのとおりです。このことはマルチポスト(マナー違反でごめんなさい)で、制限があるようでした。
「ExternalInterfaceクラス」の情報ありがとうございました。試したところ、きちんと動いた・・・ような動かないような・・・(IE×でFireFox○)(;。;)IEで何で動かないんだろうと悩みまくっています。flashProxy.call(kitの関数)でflashの関数内のExternalInterface.call(javascript、・・)を呼び出しておりますが、上記の通りIE×FF○です。
解決いたしましたら情報としてまた書き込みさせていただきます。
(目指しているところは、getUrlやproxy.callの「カチャ」音なしでinnerHtml(大きめファイル)を実現させようとしています。)
2006年05月27日 11時03分06秒

投稿者 : niku(食った・・うまうま)

↑再び勘違い(;^_^A アセアセ…
「ExternalInterfaceクラス」で何とかなりそうです。
それと同時に「JavaScript Integration Kit 」の存在意義が謎に・・・
[ユーザーサイド]html(PHP)-javascript-flash(ExternalInterface)-php-[サーバサイド(Mysqlなど)]
とかなりシームレス?(シームって何?ォィw)にでき、色々応用できそうです♪重ね重ね情報のご教授ありがとうございました
2006年05月27日 22時42分06秒

投稿者 : niku(眠い(-_ゞゴシゴシ

とおもったら、今度はFireFoxで反応すらしない・・(;。;)←愚痴です
(ちなみにFlash付属のサンプルでも起動しませんでした~)
2006年05月27日 23時16分28秒

投稿者 : MAKKY

はじめまして。Flash初心者です。

上記のFlash 作業では、HTMLから呼び出される関数は .fla ファイルに、以下のように記述すればよいのでしょうか?

function showMessage2(val){
t1 = val;
}
#変数t1は、ダイナミックテキストです。
2006年10月24日 18時39分25秒

投稿者 : yoshiweb

>MAKKYさん
返事が遅くなってすみません。MAKKYさんの書き方で大丈夫だと思います。
※私が書いたHTMLに一部、無駄なスペースが入っていたので削除しました。m(_ _)m
2006年10月31日 12時16分08秒

投稿者 : YuKI

初めまして。質問があるのです。
お暇なときに答えてくださったら嬉しいです。

swfファイルをパブリッシュする際に以下の2つのエラーが出ます。
mac OSXのflash2004MXを使用していますが、それが関係しているのでしょうか?
JavaScriptProxy.as: 行 108:controller' という名前のプロパティはありません。
receiving_lc.controller = this;

JavaScriptProxy.as: 行 110:callFlash' という名前のプロパティはありません。
receiving_lc.callFlash = callFlash;
2007年01月04日 23時36分35秒

投稿者 : yoshiweb

はじめまして、YuKIさん。
Flash / JavaScript Integration Kit は Flash MX 2004のころに開発されたものだったと思いますので、2004でも大丈夫なハズですが、いま試せる環境が手元にないのでちょっとわかりません。
引き続き、わかる方がいましたら & 解決したらYuKIさん、書き込みよろしくお願いします!!
2007年01月05日 16時32分49秒

投稿者 : buy cialis online with a prescription

When I initially commented I clicked the "Notify me when new comments are added" checkbox and now each time a comment is added I get
three e-mails with the same comment. Is there any way
you can remove me from that service? Bless you!
2023年12月22日 21時03分48秒