2008.01.16
category
comments

パブリッシュ用テンプレートHTMLをカスタマイズするには

Flashでパブリッシュすると、毎回AC_RunActiveContent対応のhtmlが出力されて手直しがめんどい。調べたらパブリッシュ用のテンプレートをカスタマイズできるらしい。自分が良く使うSWFObject対応のテンプレートを作ってみる。下記の場所にMyDefault.htmlという名前でファイルを追加する。Flashのパブリッシュ設定でHTMLタブのテンプレートから「Flash MyDefault」が選択できるようになっているので選んでパブリッシュする。これで出力されたhtmlはSWFObject対応になっている。もっと早く設定しときゃよかった。

Win
C:\Documents and Settings\ユーザ名\Local Settings\Application Data\Adobe\Flash CS3\ja\Configuration\HTML

Mac
Macintosh HD/Applications/Adobe Flash CS3/First Run/HTML

MyDefault.html

HTML:
$TTFlash MyDefault
$DXDefaultDetection.html
$DS
SWFObjectpɍXVꂽHTMLt@CAdobeFlash[r[\܂B:swfobject.jst@C͏o͂Ȃ̂ŁAHTMLƈꏏɎ蓮ŃAbv[hKv܂B
$DF

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>$TI</title>
<script type="text/javascript" src="js/swfobject.js"></script>
<style type="text/css">
body {
    margin:0;
    background-color:$BG;
}
</style>
</head>
<body>
<div id="flashcontent">
    <a href="http://www.macromedia.com/go/getflashplayer" target="_blank"><img src="img/noflash.jpg" alt="You need to upgrade your Adobe Flash Player!" width="$WI" height="$HE" hspace="0" vspace="0" border="0"/></a>
</div>
<script type="text/javascript">
    var so = new SWFObject('$TI.swf', '$TI', '$WI', '$HE', '$FV,$JR,$NR,0', '$BG');
    so.addParam('menu', 'false');
    so.write('flashcontent');
</script>
</body>
</html>

このファイルの中で使ってるテンプレート変数の一覧はこちらから。

■追記 20080612
charsetをUTF-8対応に書き換えました。

2008.01.16
category
comments

コリンムックのAS3勉強会に行ってきた

dsc_1795.jpg

今更ですが2008年最初のエントリー。Essential ActionScript3.0の著者コリンムックの勉強会に行ってきた。世界トップクラスのActionScriptのインストラクターという事でかなり期待して参加したけど、その名の通り初心者にも分かりやすい内容だった。オブジェクト指向プログラミングを独学で勉強中の身としてはかなり役立った。今まで曖昧に覚えてた事が理解できてきたかも。人のコーディングを見れると言うのは、貴重だし理解も早い。

内容としてはVirtualZooという架空の動物園でペットを飼うゲームをAS3で作る、というもの。(たまごっちの簡易版)エサをやらないと10秒で死んでしまうライフゲーム。このゲームをオブジェクト指向プログラミングで作るとどうなるかをライブコーディングしてくれました。特に感じたのがAS3を意識しないでOOPを学べた事。AS3の文法でがっつりコーディングするのではなく、OOP的考え方を教えたかったようだ。以下は自分的に気になったメモ。

・ソースは/virtualzoo/src/フォルダに格納。
・素材は/virtualzoo/bin/フォルダに格納。
・メインクラスは必ずSpriteかMovieClipを継承。
・変数にnullを代入すると参照を切った状態(メモリには残ったまま)になる。これで削除の準備状態に。ガーベジコレクション発動でメモリから解放。
・this参照を省略するとローカル変数→インスタンス変数の順番でFlash側が自動的に参照先を探してくれる。省略すると実行速度が多少落ちたりするのかな?
・MODEL(ロジック、データ管理、表示はしない)
・VIEW(グラフィック、レンダリング、MODELから通知を受けたら画面更新)
・CONTROLLER(ユーザからの入力、インプット、MODEL・VIEWに通知)
・EventDispatcherクラス。任意のタイミングでカスタムイベントを発行。ようやく便利さに気づいた。
・setメソッド、getメソッド。インスタンス変数を直接参照せずにメソッドで呼び出したり、値を代入する。
・継承について。
・状態変数の使い方。public static const PETSTATE_FULL:int = 0;
・container.mouseEnabled = false; 自身のオブジェクトがマウスイベントを受け取らなくなる。
・container.mouseChildren = false; オブジェクトの子供インスタンスにマウスイベントが送信されなくなる。

本日の資料が公開されてます。

page 1 / 11