MaxとFlashの通信

提供:kuhalaboWiki
2013年4月14日 (日) 08:40時点におけるKuha (トーク | 投稿記録)による版

(差分) ←前の版 | 最新版 (差分) | 次の版→ (差分)
移動: 案内, 検索

目次

概要

Max/MSPからFlashへデータ送信

Max/MSPパッチ例
metroで500ms毎に乱数で発生させた数値をflashserverに送る noteinでMIDIコントローラから得た数値をflashserverに送る
Flashserversamplepat01.JPG Flashserversamplepat02.JPG
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に送る
Flashserversamplepat03.JPG
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の書き出しと再生

  • ムービーの書き出し
  1. [ファイル]メニューの[書き出し][ムービーの書き出し]を選ぶ。
  2. ファイル名を付ける。ファイルの種類は、Flashムービー(*.swf)にする。
  3. [Flash Playerの書き出し]のウィンドウが出るので、そのままOKする。
  4. 作成されたswf形式のムービーファイルをダブルクリックして、再生する。

Max/MSPのFlashserverでは、XMLソケット通信を利用するので、Flashムービーを再生するには、以下の設定が必要です。

  • ムービー再生のためのセキュリティ設定
  1. Flash Playerセキュリティのウィンドウが出るので、[設定]をクリックする。
  2. インターネットにつながり、「コンテンツ作成者のためのグローバルセキュリティ設定」のページが表示される。
  3. [Adobe Flash Player Setting Manager]の右から3番目のアイコンの「グローバルセキュリティ設定」をクリックする。
  4. 「常に許可」のチェックボックスをONにする。
  5. 「これらのファイルとフォルダを常に信頼する」のプルダウンメニューから、「追加」を選ぶ。
  6. 「このサイトを信頼する:」の下の「フォルダを参照」をクリックする。
  7. 自分のswfが保存されているフォルダを選択する。
  8. 選択したフォルダが追加されていることを確認する。

以上で、SWFムービーを単体で再生することができます。なお,ログインするアカウント名が異なると設定をしなおさなければなりません。


関連項目

個人用ツール
名前空間

変種
操作
案内
ツールボックス