2007年9月 Archives

« 2007年8月 2007年10月 »

CS3 BUY!

CS3の試用期限が切れたので、ようやく購入。
と、いってもSuitではなくFlashCS3単体のみ。

なぜ単体購入かというと、一番大きい理由は「資金不足」これに尽きる。
それともう一つ、現在Winマシンをメインマシンに使ってるけど近い将来
Macに乗り換えるので、Suitはそれまでお預け。

まあその他にも色々理由はある。思ったよりアプリの間で統合がとれていなかったり、CSの機能で十分だったり。実際、IllustratorやPhotoshopは冗長な成長を続けるばかりで革新的とは言えないと思う。Flashの進化に対してIllustratorとPhotoshopの進化はマイナーバージョンアップ位にしか感じられないのだ。

あともう一つの理由がある。実はFlashMX単体のライセンスがあったから。このまま放っておくと次回のバージョンアップでは足切りされるだろうから、今のうちに何とかしたかった。
そして驚く事にこのMXはアカデミックにも関わらず製品版アップグレードが可能だった。てっきりアカデミック版では製品版アップグレードが適用されないと思いこんでいたけど実はちゃんとアップグレード可能だった。これはとてもうれしい。

が、ということは学生時代にMasterCollectionとかを買っていたらもっと良かったのかも...

何にせよ数年前に\15,000で買ったMXが思わぬところで役立ってよかった。学割って本当にいいよな~

CS3 アクティベーション

CS3インストールに関してもう一つ書いておきたいことがある。アクティベーションに関しての事だけど、CS3のアクティベーションはかなり厳しい。どれくらい厳しいかと言うと、OS(winXP)よりも厳しいみたいだ。

今回、色々タイミングが重なって、CS3の試用期限30日が切れるあたりでOSの再インストールをする予定だった。ということは当然CS3も完全にインストールし直す訳で、これなら更に30日試用版で使っちゃおうかな~と考えていたが、甘かった。

そう、CS3はHDをフォーマットして、OSをクリーンインストールしても30日以上使えないのだ。

windowsでさえクリーンインストールし直せばもう一度30日間の試用期間が与えられる。ところがCS3はそれすらも許してはくれない。いずれにせよ購入するつもりだったから、このポリシーはどうでもいいんだけど、気になるのは技術的にどうやっているのかと言うこと。ちなみにネットワークで認証している訳ではない様子だった。オフラインでもアクティベーションエラーになるからだ。

いくつか試してみた結果、一度インストールしたHDではOSをリインストールしようがフォーマットしようが二度と試用版は使えない様だ。逆に言えば同一のシステムでHDさえ交換すれば試用版を使えるみたいだけど、そこまでやるやつはいないだろうし、HDの購入費用が毎月かかるのではCS3を買った方が賢い。

と言うわけで、アクティベーション情報はHD内のどこかに保存されているって事だと思う。しかもフォーマットしても消えないような何処かに。マスターブートレコード(MBR)かな?と思い、マスターブートをクリアしたけどやっぱりだめだった。ターミネータソフトを使ったり、HDのローレベルフォーマットをかければ流石にアクティベーション情報も消え去るかも知れないが、これもそこまでしようとは思わない。

一番賢い選択は、グレーな倹約に知恵を絞るより、悩まず購入して、制作の為に知恵を絞ることのようだ。おしまい。

New iPod は寸づまり

予定通りの9/5に発表されたiPodは噂通りに寸詰まりになったみたいだ。ここ最近AppleのデザインはiPodからMacへと引き継がれているようだけど(iPhoneからiMacへ引き継いだ黒ベゼルとか)この寸詰まりもMacへ引き継がれるんだろうか。

Apple関連の話題は本当にMacよりiPodに移ってしまった。社名もApple Incになってる。もうApple Computerではないんだ


関連記事(CNET)


関連記事(ITMedia)

Flash CS3 のマニュアル

FlashCS3のマニュアルのAS3の導入部分をざっと読んでみたけど、結構誤植が多い。特にサンプルスクリプトに完全に動作しなくなるような誤植や、ちょっとしたケアレスミスのような誤植が散見した。

別にマニュアルの誤植を鬼の首を取ったかのようにあげつらうつもりは到底ない。マニュアルの製作はアプリケーションの開発より酷な作業だと思う。しかもこれを翻訳するとなってはもう想像がつかない。日本語と英語に堪能で文章力があり、なおかつプログラミングも理解してる人材なんてそうザラに居ないだろう。アプリケーションのローカライズやマニュアルの翻訳が大変だからCS3日本語版は英語版に比べて高額なのかもしれない。

Flash更新用にCMSを実装するとして、自製のCMSを実装することはそんなに難しい訳では無いかもしれないけど、納品物としてマニュアルを製作する必要やティーチングの必要があるなら、MovableTypeやWordPressを外部CMSとして利用する方が良いな、と思う。

ActionScript3(AS3)のidMapはどこだ?

ActionScript3(AS3)でXMLの特定のノードにid属性を使ってアクセスするためのメモ。

AS2でいうところのidMap[]だったり、JavaScriptのgetElementById()とかと同様の処理をしようと思ったら意外にハマッてしまった。AS3の仕様が厳格なのか、それとも単なる気まぐれなのかわからないけど、一応メモ。


<body>
 <p id='123'>Hello, <b>Bob_1</b>.</p>
 <p id='124'>Hello, <b>Bob_2</b>.</p>
 <p id='125'>Hello, <b>Bob_3</b>.</p>
 <p id='126'>Hello, <b>Bob_4</b>.</p>
 <p id='127'>Hello, <b>Bob_5</b>.</p>
 <p><b><p id='128'>Hello, <b>Tom</b>.</p></b></p>
</body>

こんな感じのXMLに対してid"128"にアクセスする場合、


AS2だとこう↓
var doc:XML = new XML("<body><p id='123'>Hello, <b>Bob_1</b>.</p><p id='124'>Hello, <b>Bob_2</b>.</p><p id='125'>Hello, <b>Bob_3</b>.</p><p id='126'>Hello, <b>Bob_4</b>.</p><p id='127'>Hello, <b>Bob_5</b>.</p><p><b><p id='128'>Hello, <b>Tom</b>.</p></b></p></body>");

trace(doc.idMap['128']);//<p id="128">Hello, <b>Tom</b>.</p>


AS3だとこう↓
var doc:XML = new XML(
<body>
 <p id='123'>Hello, <b>Bob_1</b>.</p>
 <p id='124'>Hello, <b>Bob_2</b>.</p>
 <p id='125'>Hello, <b>Bob_3</b>.</p>
 <p id='126'>Hello, <b>Bob_4</b>.</p>
 <p id='127'>Hello, <b>Bob_5</b>.</p>
 <p><b><p id='128'>Hello, <b>Tom</b>.</p></b></p>
</body>

trace(doc.descendants().(attribute('id') == '128'));//<p id='128'>Hello, <b>Tom</b>.</p></b>

//trace(doc.(attribute('id') == '128'));//これだと何も返さない(空白)
//trace(doc.descendants().(@id == '128')); //これだとランタイムエラー
//trace(doc.(@id == '128')); //これもランタイムエラー
//trace(doc..(@id == '128')); //これだとコンパイルエラー

AS3の場合、子ノードや孫ノードを含めてid属性を検索する場合、descendants()が必要になるみたいです。AS2のidMapの感覚からするとdoc.(attribute('id') == '128'やdoc.(@id == '128')でアクセス出来そうな気がするけど、これは不可。
とくに@idを使った場合、同一階層の他のノードにid属性がない場合、ランタイムエラーを返すので要注意。

AS3になって、かなりXML環境が強力かつ便利になったみたいでとても格好いいな~と思っていたけど、上記の問題を解決するのに半日費やしてしまった。いまいちFlashのヘルプが貧弱な気がする。
まあとりあえず解決できたので、習作として為替レート表示Flashか天気予報Flashとかベタなコンテンツを作ってみよう。

Firefox起動時の「前回のセッションの復元」を非表示にする

確かFireFox2.0.0.0からだったと思うけど、複数のタブを開いたままFireFoxを終了すると、次回起動時に「前回のセッションを復元しますか」と聞いてくれるようになった。

この機能を有効活用してる人も多く居るかもしれないが個人的には大きなお世話で、ブラウザがすぐに立ち上がらないのが何とももどかしい。

かねてから何とかして無効化してやりたいと思っていたが、環境設定にそれっぽいのがないので放置していたけれどようやく見つけたので早速無効化する。


ロケーションバー に about:config と入力。
下記行をダブルクリックして、trueからfalseに切り替える。

browser.sessionstore.resume_from_crash
 

parentの扱い

AS2.0からAS3.0の移行で感じた大きなギャップは、今のところコレが一番。

「parentの扱い」について

global変数がなくなったりroot変数の仕様が変わったりは耳にしていたので、予備知識のおかげで大した混乱もなかったものの、コイツにはマイッタ。


たとえば
「hoge_mc」の中に「inner_mc」を入れ子にして、「inner_mc」のフレームアクションに下記のスクリプトを書く

AS2.0の場合
/*inner_mc frame action  vr:AS2.0*/
_parent.gotoAndStop(2) ; //hoge_mcは2フレームに移動する


AS3.0の場合 その1
/*inner_mc frame action  vr:AS3.0*/
parent.gotoAndStop(2);        //コンパイルエラーになる
MovieClip(parent).gotoAndStop(2); //hoge_mcは2フレームに移動する


AS3.0の場合 その2
/*inner_mc frame action  vr:AS3.0*/
var parentMc:MovieClip= MovieClip(parent);
parentMc.gotoAndStop(2); //hoge_mcは2フレームに移動する


同様にparentの変数や関数にアクセスするときも
/*inner_mc frame action  vr:AS3.0*/
var parentMc:MovieClip= MovieClip(parent);
parentMc.foo_var;
parentMc.foo_func;


と言う具合に型キャストが必要になる訳だけど、その理由はparentの型がMovieClipではなくDisplayObjectContainerだから、だそうです。なにかしら重要な意味があってこうなったとは思うけれど、今の自分の理解じゃあ重要な何かがなんなのかよくわからん。そのうちわかるんだろうか。
とりあえずもう、スクリプト言語じゃあ無いよな、と思う。

ま、忘れはしないだろうから、いちいちメモを取る事も無いんだけど、後から読み返して「ああ、そんな事もあったなあ」と振り返ってみるためにメモ。

vaioがこんな事やっててスゴイ

vaioのプロモーションサイトがFWAに載ってて、すげえっと思ったものの、いまいち盛り上がってない。
でもコレってすごく良いコンセプトだと思う

http://vaio-online.sony.com/prod_info/concept/remix/

RSS + Contuct

  • rss
  • email

Credit

Copyright (C) 2007 kappa-lab.com.
All Rights Reserved.