Software Design 2007年10月号 の記事「Wii対応Webアプリ作りにチャレンジ!」を見ていたら、
「Flex 2 SDK が対応しているのは Flash 9 なので Wii 向けの Flash は作れない。MTASC を使えば Wii 用の Flash 7 アプリが開発可能」
というようなことが書いてあった。
というわけで、Nintendo Wii + Dragon Quest Swords + 似非Flash のフラッシュを MTASC で作りなおしてみたところ、Nintendo Wii から Flash が見れるようになった。
リモコンを振ると、閃光?が走って音が鳴る。
ヽ( ・∀・)ノ ワーイ。
できたもの ⇒ 似非ドラゴンクエストソード: Sham Dragon Quest Swords (for Wii)
以下、忘れないうちに MTASC の使い方をメモしておく。
MTASC とは
MTASC は Motion-Twin ActionScript 2 Compiler の略。
オープンソースの Flash コンパイラ。
ライセンスはGPL.
MTASC のインストールと設定
OS: Windows XP
MTASC (Motion-Twin ActionScript 2 Compiler) から mtasc-1.13.zip をダウンロードして解凍して適当なディレクトリへ設置。
今回は C:\mtasc\mtasc-1.13 に設置した。
C:\mtasc>tree
フォルダ パスの一覧: ボリューム hoge
ボリューム シリアル番号は 0000ABD0 1234:ABCD です
C:.
├─mtasc-1.13
│ ├─std
│ │ ├─System
│ │ └─TextField
│ └─std8
│ ├─flash
│ │ ├─display
│ │ ├─external
│ │ ├─filters
│ │ ├─geom
│ │ ├─net
│ │ └─text
│ └─System
次にパス(環境変数PATH)を設定する。
デフォルトの環境変数を変えたくないので、configure.bat というバッチファイルに設定内容を書いておいて、必要なときに実行する。
C:\mtasc>type configure.bat
set PATH=C:\mtasc\mtasc-1.13;%PATH%
今回のソースコード(Slash.as)
ソースコードの文字コードは UTF-8。
テキストエディタでソースを書く。
class Slash
{
public static function main() {
var p = new Slash(_root);
}
private var root:MovieClip;
private var canvas:MovieClip;
private var MAX_X:Number = 780;
private var MAX_Y:Number = 380;
private var preMouseX:Number = 0.0;
private var preMouseY:Number = 0.0;
private var mySound:Sound;
public function Slash(parent:MovieClip) {
root = parent;
root.createEmptyMovieClip("canvas", 100);
canvas = root["canvas"];
mySound = new Sound(_root);
mySound.loadSound("se.mp3", false);
var self:Slash = this;
root.onEnterFrame = function () {
var x:Number = this._xmouse;
var y:Number = this._ymouse;
self.aaaa(x, y);
};
}
private function aaaa(x, y):Void {
var diffX:Number = x - preMouseX;
var diffY:Number = y - preMouseY;
var right:Boolean = false;
var left :Boolean = false;
var down :Boolean = false;
var up :Boolean = false;
if(diffX > MAX_X/2){
right = true;
}
if(diffX < -MAX_X/2){
left = true;
}
if(diffY > MAX_Y/2){
down = true;
}
if(diffY < -MAX_Y/2){
up = true;
}
if(right){
if(down){
doSlash(0, 0, MAX_X, MAX_Y);
}else if(up){
doSlash(0, MAX_Y, MAX_X, 0);
}else{
doSlash(0, MAX_Y/2, MAX_X, MAX_Y/2);
}
}else if(left){
if(down){
doSlash(MAX_X, 0, 0, MAX_Y);
}else if(up){
doSlash(MAX_X, MAX_Y, 0, 0);
}else{
doSlash(MAX_X, MAX_Y/2, 0, MAX_Y/2);
}
}else{
if(down){
doSlash(MAX_X/2, 0, MAX_X/2, MAX_Y);
}else if(up){
doSlash(MAX_X/2, MAX_Y, MAX_X/2, 0);
}else{
canvas.clear();
}
}
preMouseX = x;
preMouseY = y;
}
private function doSlash(x1:Number, y1:Number, x2:Number, y2:Number):Void {
mySound.start(0,0)
canvas.clear();
canvas.lineStyle(10, 0x000000);
canvas.moveTo(x1,y1);
canvas.lineTo(x2,y2);
}
}
# ActionScript 2.0 ぜんぜんわからない……超苦戦。
コンパイル
ソースコードを C:\mtasc\Slash.as に設置してコンパイル。
C:\mtasc>mtasc.exe -swf "slash.swf" -header 780:380:4 -version 7 -main "Slash.as"
slash.swf というファイルができた。
Flash 設置用の HTML コード
とりあえず、シンプルな形にしておいた。
あまりいろいろ指定して Wii で動かないと困るし。
<object width="780" height="380">
<param name="movie" value="slash.swf">
</param>
<embed src="slash.swf" type="application/x-shockwave-flash" width="780" height="380">
</embed>
</object>
Webサイトへ設置
HTMLファイルとmp3ファイルとswfファイルを設置。
今回は、mp3がswf埋め込みじゃないので、mp3もウェブサイトにおく必要がある。
設置したら Wii で動作確認。
⇒ 似非ドラゴンクエストソード: Sham Dragon Quest Swords (for Wii)
以下、参考情報など。
Software Design 「Wii対応Webアプリ作りにチャレンジ」
Software Design 2007年 10月号の記事「Wii対応Webアプリ作りにチャレンジ! by 酒徳峰章(クジラ飛行机)」がとても参考になった。
インターネットチャンネルの仕様からはじまって、MTASC の導入、JavaScript と連携してリモコンのモーションセンサーを使う方法が書いてある。
サンプルアプリのソースコードが Software Design 2007年10月号 補足情報 「~Wiiリモコンで自由に操ろう~Wii対応Webアプリ作りにチャレンジ!」 からダウンロードできる。
ActionScript 2.0 API Reference
ActionScript のクラスのリファレンス等は Macromedia - Flash 8 LiveDocs の Flashドキュメンテーション - ActionScript 2.0 リファレンスガイド を参考にした。
Adobe - ActionScript2.0 (Flex ActionScript および MXML API リファレンスガイド) というのもあるが、なんだかちょっと違う様子。
Sound クラスの使い方
MTASCと戯れる その後 - sshi.Continual を参考にした。
同ブログの Flash 関連のエントリ集 -> [flash] - sshi.Continual
mtasc.exe の usage
C:\mtasc>mtasc.exe
Motion-Twin ActionScript2 Compiler 1.13 - (c)2004-2007 Motion-Twin
Usage : mtasc.exe [options] <files...>
Options :
-pack <path> : compile all files in target package
-cp <paths> : add classpath
-v : turn on verbose mode
-strict : turn on strict mode
-infer : turn on local variables inference
-wimp : turn on warnings for unused imports
-msvc : use MSVC style errors
-mx : use precompiled mx package
-swf <file> : swf file to update
-out <file> : swf output file
-keep : does not remove AS2 classes from input SWF
-frame <frame> : export into target frame (must exist in the swf)
-main : enable main entry point
-header <header> : specify header format 'width:height:fps'
-group : group classes into a single clip
-exclude <file> : exclude classes listed in file
-version : change SWF version (6,7,8,...)
-trace <function> : specify a TRACE function
-help Display this list of options
--help Display this list of options
tags: zlashdot Flash Flash Game MTASC Wii
Posted by NI-Lab. (@nilab)