MaxとFlashの通信
提供:kuhalaboWiki
(版間での差分)
(ページの作成:「== 概要 == * flashserverを使って、Max/MSPとFlash間で通信する方法を解説します。 * [http://cb6.media.t-kougei.ac.jp/cgi-bin/ag.cgi?page=FileIndex&g...」) |
2013年4月14日 (日) 08:40時点における版
目次 |
概要
- flashserverを使って、Max/MSPとFlash間で通信する方法を解説します。
- サンプルファイル
Max/MSPからFlashへデータ送信
- Max/MSPパッチ例
| metroで500ms毎に乱数で発生させた数値をflashserverに送る | noteinでMIDIコントローラから得た数値をflashserverに送る |
|---|---|
- ActionScript例
server = "localhost";
port = 31337;
max = new XMLSocket();
max.connect(server, port);
max.onConnect = onMaxConnect;
max.onClose = onMaxClose;
max.onData = onMaxData;
//Max/MSPとFlash間の接続状況情報の獲得
function onMaxConnect (success) {
if (success) {
msg00 = "Connected to "+server+" on port "+port;
}
else {
msg00 = "There has been an error connecting to "+server+" on port "+port;
}
}
function onMaxClose () {
msg00 = "Lost connection to "+server+" on port "+port;
}
function onMaxData(doc)
{
argv = []; //送信データ格納用の配列作成
doc = doc.substr(0, doc.length - 1); //送信情報の最後についてる;をとる
argv = doc.split(" "); // 半角スペースアキでデータが送られているので、半角スペースでデータを分ける
a = argv[0]; //第1引数 //Max/MSPから送信された値を変数aに代入
b = argv[1]; //第2引数
c = argv[2]; //第3引数
msg01 = "aの値 = "+ a; //aの値をダイナミックテキストmsg01に表示
msg02 = "bの値 = "+ b;
msg03 = "cの値 = "+ c;
_root.testMC._width = a;//aの値をtestMCの幅に適用
_root.testMC._height = b;
_root.testMC._rotation = c;
}
FlashからMax/MSPへデータ送信
- Max/MSPパッチ例
| Flashムービーでボタンをクリックすると,文字列や数値の配列(リスト)をMax/MSPのflashserverに送る |
|---|
- ActionScript例
stop();
server = "localhost";
port = 31337;
flash2max = new XMLSocket();
flash2max.connect(server, port);
flash2max.onConnect = onPDconnect;
function sendst2max(s1) {
ss = s1+";";
//文字列をMaxに送る
flash2max.send( ss );
}
function sendv2max(v1,v2,v3,v4) {
//数値を半角スペースで区切ってリストを作成
vv = v1+" "+v2+" "+v3+" "+v4+";";
// 複数の数値をリスト形式でMaxに送る
flash2max.send( vv );
}
bt01.onPress = function() {
//ボタンをクリックするとMaxへ値を送る
//文字列hogeを送る
sendst2max("hoge");
}
bt02.onPress = function() {
a = 60;
b = 127;
c = a + b;
d = Math.random() * 128;
//整数a,b,cと小数点数値dを送る
sendv2max(a,b,c,d);
}
Flash Movie再生時の設定
ムービー再生時に,フルスクリーン表示、メニュー非表示,マウスポインタ非表示にするには、以下のコマンドを書く。
fscommand("fullscreen","true");
fscommand("allowmenu","false");
Mouse.hide();
上記の逆は以下の通り。
fscommand("fullscreen","false");
fscommand("allowmenu","true");
Mouse.show();
Flash Movieの書き出しと再生
- ムービーの書き出し
- [ファイル]メニューの[書き出し]-[ムービーの書き出し]を選ぶ。
- ファイル名を付ける。ファイルの種類は、Flashムービー(*.swf)にする。
- [Flash Playerの書き出し]のウィンドウが出るので、そのままOKする。
- 作成されたswf形式のムービーファイルをダブルクリックして、再生する。
Max/MSPのFlashserverでは、XMLソケット通信を利用するので、Flashムービーを再生するには、以下の設定が必要です。
- ムービー再生のためのセキュリティ設定
- Flash Playerセキュリティのウィンドウが出るので、[設定]をクリックする。
- インターネットにつながり、「コンテンツ作成者のためのグローバルセキュリティ設定」のページが表示される。
- [Adobe Flash Player Setting Manager]の右から3番目のアイコンの「グローバルセキュリティ設定」をクリックする。
- 「常に許可」のチェックボックスをONにする。
- 「これらのファイルとフォルダを常に信頼する」のプルダウンメニューから、「追加」を選ぶ。
- 「このサイトを信頼する:」の下の「フォルダを参照」をクリックする。
- 自分のswfが保存されているフォルダを選択する。
- 選択したフォルダが追加されていることを確認する。
以上で、SWFムービーを単体で再生することができます。なお,ログインするアカウント名が異なると設定をしなおさなければなりません。