忍者ブログ
[PR]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。


2025/04/20 04:09 |
C#とFLASHの通信実験 その2
ようやくOCXの登録が完了。

拍手

FLASH側のソースも、作る必要があるなー。
フリーのコンパイラが無いかと探してみたら、ありました。
mtasc.exe
コマンドライン形式でのコンパイラですな。


まずFLASHからC#へのメッセージ送信。
FLASH(送信)側のソース
起動したら、メッセージ投げるだけのもの。
class test
{
    static function main()
    {
        fscommand("Flash", "message No.1");
    }
}
これをtest.asとファイル名付けて保存し、mtasc.exeでコンパイルしたらswfファイルが出来る。
これを使う。
コンパイルは
mtasc -swf test.swf -main test.as -header 400:200:30
でOK。
 
C#(受信)側
フラッシュのロードは
this.フラッシュオブジェクトの名前.LoadMovie(0, "c:\temp\aaa.swf");
でOK。
フラッシュのイベントFSCommandを作成。
デザインでフラッシュのオブジェクト選択後、プロパティの雷のマーク押して、
イベントのFSCommandのところでダブルクリック。
フラッシュから何か受信すると、これが勝手に呼ばれる。超便利。
この引数のeに、フラッシュ側のfscommandで指定した二つの引数の文字列が、そのまま入ってくる。
            label1.Text = e.command.ToString();
            label3.Text = e.args.ToString();
こんな感じで受け取れば、ラベルに表示される。
fscommandのそれぞれの引数には、日本語入れたら化けた。コード変換が必要?

次にC#からFLASHへのメッセージ送信。
FLASH側。
くだんのページによれば、変数の値が変化するのを待つ(watch)ようにすればいいらしいのだが、
mainで待たそうとすると、コンパイルエラーになる。
待つのを関数にして関数コールしても同じ。
どうやら、mainから呼んでいるのが気に入らないっぽい。
別のイベントから呼んでやる必要があるみたい。
となるとボタンか..
ボタン作って、それが押されたら監視に入る、という方向で考えてみる。
 
ボタンを作るスプリクトの書き方がサッパリ分からない。
だんだん手打ちが面倒になってきたので、それなりのツールを使う事を決意。
Adobe® Flash® CS3 Professionalの体験版をダウンロード。
400メガのダウンロードなんて、一昔前では考えられんかったなぁ。
 
FLASHの言語ってのはアクションスプリクトって言うのかー。へー。
フラッシュ部分とスプリクトを切り離す事ができるんだー。へー。
ここに来てようやくその程度のことが分かる。

しかし、さっきからどうも気になる事が。
ヘルプで調べたり、ネットで拾ってきたコードをそのまま入れてるのに、コンパイルエラーの嵐。暴風雨。
なんで?一体何が悪いのか?顔?ここでも顔なのかこら。

watchがどーしてもうまくいかない。半日ぐらい悩んだ。
そしてたどり着いた真実が。
ActionScript 2.0 と 3.0 の相違点
ttp://livedocs.adobe.com/flex/2_jp/langref/migration.html

watch() Method 削除されました。

ガーーーーン!!
確かにバージョンは気になってはいたけど、まさか下位互換が無いとは..
2.0では使えるらしいってんで、2.0で書いてみたらあっさり動作。
どうやら、3.0になったら、これまで比較的自由な書き方が許されたのが、随分とお固くなってしまった様子。
じ、じゃあ3.0でwatchにとってかわるものは!?
と調べてみたが、どうもそんなの無いみたい。
有るには有るけど、通信として使うのは無理っぽい。

どーすんだーと悩んだ末、結局たどり着いたのが。
ttp://web.sfc.keio.ac.jp/~shokai/archives/2007/12/cs-as-xmlsocket-command.html

ほー通信できるのか。そりゃ凄い。あっさり解決。
結局、OCX要らないし。

長い旅でした。
 

2008/01/18 12:21 | Comments(0) | TrackBack() | デジタル関係

トラックバック

トラックバックURL:

コメント

コメントを投稿する






Vodafone絵文字 i-mode絵文字 Ezweb絵文字 (絵文字)



<<バイオリンのおけいこ | HOME | C#とFLASHの通信実験 その1>>
忍者ブログ[PR]