ActionScript2.0でXMLを解析するのってノードを一個一個たどらなくちゃいけなく、とってもてかったるいです。そんなこんなで、ActionScriptでXpathを使えるようにするライブラリを作っちゃった人がいるんですね。
XPath4AS2
http://www.xfactorstudio.com/Actionscript/AS2/XPath/
これだけでも十分便利なんだけど、XMLを書き換えたりするときのためにラッパーを作ってみた。
ActionScript2.0でXMLを解析するのってノードを一個一個たどらなくちゃいけなく、とってもてかったるいです。そんなこんなで、ActionScriptでXpathを使えるようにするライブラリを作っちゃった人がいるんですね。
XPath4AS2
http://www.xfactorstudio.com/Actionscript/AS2/XPath/
これだけでも十分便利なんだけど、XMLを書き換えたりするときのためにラッパーを作ってみた。
ちょっと出遅れ気味なのですがMTASCをOSXにインストールしてみました。
MTASCはMotion-Twin ActionScript 2 Compilerの略でコマンドラインからjavacみたいにパブリッシュできるオープンソースのコンパイラーだそうな。MTASC 1.09からは、Flash8用にコンパイルできるらしい。std定義ファイルを入れ替える必要はあるらしいですが。っていうか、まだ本家が日本で発売してないじゃん。
うーむ。不覚にも感心してしまった。まじですごい。
http://www.microsoft.com/mscorp/innovation/yourpotential/main.html
やっぱお金があるところは違うよね。
Flash8も大幅にVideo関係のエフェクトを強化してくるみたいだし、これからWebで何かをプレゼンテーションする手段に映像的手法が重要な位置づけを占めてくることになるのかも。しかもテレビとか映画と違ってリニアなシーケンスじゃない感じの映像が作れる技術。だって文章読ませるより、ちゃんとしたナレーターがモーショングラフィックスと一緒に説明した方が伝わるもの。
動いて音が鳴るだけじゃ誰も感心しない世界。映像のクオリティとシナリオが問われる時代がやっとWebにもやってくる。とすると既存のグラフィックよりのデザイナーって厳しくなってくるのかなあ。まあそれはそれで今後も需要はあるのだろうけど。
オープンソースのリッチクライアント Open Laszlo (3.0.2)をOSX(Tiger)にインストールしてみました。
ここで説明するまでもないけど、Open Laszloとは、Laszlo Systems社が開発したプラットフォームでXMLベースのタグとJavascriptでFlashをサーバー側で作れるものです。MacromediaのFlexとだいたい同じみたいなのだけど、こっちはオープンソースになってます。
探せばあるものですね。AS2.0対応のコードもある。
RegExp class for Flash 5 / Flash MX
あんまり使う機会ないかもですが。ちょっと重そうだし。(未使用です。)
ドネーションウェアらしいのでライセンスには注意。
今日発見した小技をメモ。
Q)
cssとdivを使ったサブメニューをswf上の領域に表示させようとするとムービーが全面に出てきてしまう。
A)
swfを表示させているobjectタグに <param name="wmode" value="transparent" />とパラメータ追加。(IE用) embedタグ内にwmode="transparent"と属性追加。(Mozilla系用)
z-indexをいじったり、onMouseのときにswfのレイヤーをhiddenにしたりとあれこれやってたのだけど、これで一発解決。
ほほう。あとでいじってみるかとMemo。
http://sourceforge.net/projects/flade/
via: FからはじめるFlash講座
ということはsodaplayとかも、Flashで作れちゃいそうですね。
Prossesing版のソースコードも公開されてるし。
FAMES:FAME+Swfmillとは、Flashout+ASDT(ActionScript Development Tool)+MTASC+Eclipse+Swfmillの頭文字をとったオープンソース(仮)のFlash開発環境です。
ばく自身、このブログのActionScript 2.0で書くデザインパターン入門のコーナーではMTASC+mi+FlashMXmodeでのんきにコーディングしてたのですけど、そろそろ限界になって来ました。ということで、思い切って開発環境を構築してみることにしました。
日本語で読める、まとまった構築方法(OSX Tiger版)を検索しても出てこなかったので、では、僭越ながらまとめておきますかというとで。今更ながらですが。
ちなみに、うちの環境はこんな感じです。
PowerMac G5 Dual 2 GHz
OSX10.4.2
1.5 GB DDR SDRAM
(うは、なんかちょと気恥ずかしい。うちの子紹介。)
さっき、FDTを入れてみました。
FDTのインストール via:fladdict
ぼくの環境ではEclipseのアップデートから普通にインストールできた。
むっちゃいいよこれ。一度使っちゃうと戻れん。
でも、有料なんだよなあ、これ。しかも結構いいお値段だったりする。
でもこれだけの機能だったら安い気もするし。。。うーむ。
クロスプラトフォームでは3Dエンジンがサポートされない?Flash5レベルの機能?
それって本気なのかあ。
下の記事けちょんけちょんに叩いてて面白いです。
Sparkle v. Flash "the Showdown"
後追いだろうが、まねっこだろうが、力づくだろうがとにかく最後に立ってた人が勝ちとは思うのだけど、どうなるんでしょうね。
個人的には新しいのより、フラッシュのオープンソース勢にがんばってもらいたいのと、javascriptがもっと標準化されてほしいと思います。フィールドは全然違いますけど。
perlから、swfファイルを生成するモジュールを二つ見つけました。
SWF::File(日本語)
perl::flash(英語)
正直、テキスト入力してそれが反映されたswfが生成できてもあんまり意味ないかなあと思います(それくらいならFlash内で完結できるし。)が、perlと連結できれば可能性は広がりそうな感じがします。
ぼく自身はperlはウルトラ超初心者なので使えないですけど。
問題:
Flashでパブリッシュの「サイズ:100%表示」+「伸縮:拡大・縮小なし」にして、ページの長さが変化するデザインにしたとき、ブラウザのスクロールバーが出ないため、下の方のコンテンツが閲覧できない。
はじめ、fscommandを使ってjavascriptにコンテンツの高さを渡そうと思って失敗。fscommandはMacのFirefox(僕のメインブラウザ)で動かず。htm側でflame切ったりcssいじったり、あれこれしてもうまくいかず。
結局、コンテンツが表示されたタイミングでActionScript側に以下のようかんじでJavascriptに値を渡し、
getURL("javascript:chageStageSize("+全てのコンテンツの合計の高さ+");");
HTML側に以下のようなJavaScriptを追加するとオーケー。
<script language="JavaScript">
<!--
function chageStageSize(arg){
document.body.style.height = arg;
}
//-->
</script>
これだと、上記のパブリッシュ設定でも、ページの長さに合わせてブラウザのスクロールバーが出ようになる。
body要素だけじゃなくて、div要素の高さをいじったりも出来るはず(多分)。
リストページとか、Blogとか、RSSリーダーみたいなのをフルFlashで作るときに便利です。
document.body.styleはwindowsのIEでだめみたいです。
document.getElementById('divのID').style.heightでオーケみたいです。
del.icio.usで、ネット上のmp3をブックマークすると見出しの左に青い三角が現れて、その場で再生できる件について。
http://del.icio.us/popular/system:filetype:mp3
仕組みとしては、phpかなんかのプロキシを挟んでFlashでストリーミングしてるみたいだけど、これ便利すぎる!タグ付けされたリンクをブラウズしてその場で再生。ネットサーフィンのあり方を変えるんじゃないか。
Flashというと中村勇吾デザインみたいにぐりぐり派手に動くやつと固定観念に縛られてると面白くない。枯れたJavaScreiptがGoogleで生きを吹き返したみたいに、Flashこそもっと自由な使い方を考えなきゃなあと思いました。もともとポテンシャルは高いのだし。
僕自身、いわゆるグラフィックデザインにあまり興味がいかず、どちらかというと、プロダクト的というか、機能のデザインがしたいと常々思ってるので、久々のヒットです。
はてなRSSがポッドキャスティングに対応してますね。仕組みとしては、以前ここで書いたdel.ici.usのあれと似てます。あいかわらず、はてなフットワークの軽いなー。
どうやってやるのか前々から気になってたので調べてみました。
mtascの公式サイトに出てたのですが、結果として標準Flash IDEが必要な模様。mtasc単体で完結できないみたいなので残念。ってちょっと考えたら当たり前か。。
まずはエディタを開いて以下のようなasファイルを用意。
import mx.controls.Button; class mxTest{ function mxTest(mc:MovieClip){ mc.createClassObject(Button,"btnTest",1,{ label:"テスト", _width:100, _height:25, _x:30, _y:30 }); } }
次にFlashI DEからtest.flaを作成1フレーム目に
m = new mxTest(this); this.stop();
と、記述し、ライブラリに ボタン・コンポーネントを追加。パブリッシュ。
% mtasc -cp (クラスパス※) -mx -swf test.swf mxTest.as
※うちの環境は以下の通りでした。
/Applications/Macromedia Flash MX 2004/First Run/Classes/
で、できたtest.swfがmxtest.asを反映された物。
あとは、myTest.asを書き直す事でswfに反映させる事ができる。
次のコードはボタンを押した後、アラートウィンドウを表示させるようにしたもの。flaファイルのライブラリにAlertコンポーネントを追加してパブリッシュする必要がある。
import mx.controls.Button; import mx.controls.Alert; import mx.utils.Delegate; class mxTest{ function mxTest(mc:MovieClip){ mc.createClassObject(Button,"btnTest",1,{ label:"テスト", _width:100, _height:25, _x:30, _y:30 }); mc.btnTest.addEventListener("click", Delegate.create(this, btn_onClick)); } function btn_onClick(eventObj:Object) { Alert.show("you "+eventObj.type+"ed "+eventObj.target,"title"); } }
% mtasc -cp (クラスパス※) -mx -swf test.swf mxTest.as
うーむ。めんどい。
ブログ「minfish.jp/blog」のカテゴリ「Flash」に投稿されたすべてのエントリーのアーカイブのページです。過去のものから新しいものへ順番に並んでいます。
前のカテゴリはDesignPaternです。
次のカテゴリはInternetです。