Saqoosha

FDT で 1 プロジェクトやってみたわけだが

Blog

先日の .fla2 トークイベント来てくれた方、あざっした。で、そのライブコーディングで使っていたのは FDT っていう Flash 開発環境。AS3 になって Flex Builder 使うようになってからはまーたく使ってなかったんだけど、AS2 時代は FDT 以外にまともな AS エディタがなかったから使ってました。最近また FDT の名前をよく聞くようになってきたり、オープンソースライセンスをもらったり、こないだの Adobe MAX で FDT の中の人に会ったり、だったので某プロジェクトを FDT でコーディングしたりしていて、んで、ライブコーディングにも使ってたと。いまんとこメイン開発環境かな。実戦投入してみないとわからないこともいろいろあるわけで、以下、気付いた点とか。購入検討しているひとは参考にどぞ。

よい点。


コードアシスト
まー、FDT つかうのはほぼこのためだっていうぐらい重要なポイントですな。デフォルトだとそんなにアシストしてくんないけれど、ここの Code Assist んとこの設定をするとウザいぐらいアシストしてくれる。ぼかー、Delay 50 でやってる。

Quick Fix
これは言葉で説明するのは大変なので詳細はこっち見てもらうとして、そーんなに頻繁にはつかわないけどトップダウンでコードを作っていくときは結構つかえる。

Refactoring。
リファクタリングつってもそんな高度なもんじゃーない。変数名とか関数名のリネームとかファイル移動したときの関連ファイルの修正とかそんなん。だけど、結構つくってる最中にパッケージ構成変えたり名前変えたりってのはしたくなるので、これがさくっとできるのは便利。ただしファイル名変更いがいのリファクタリング機能は Enterprise 版しかできない。なんだそりゃ。

参照元検索。
このメソッドをちょっと修正しようと思うんだけど、いったいどこから呼ばれてるんだっけ?とかってのが検索できる。変数とかも。割とよくつかう。

Organize Imports。
コードアシストの次に重要なポイントだなー。基本的に AS 書いていくと import 文は自動的に追加されていく(違うパッケージの同名クラスは選択ダイアログが出る)んだけど、てきとうにコピペして他からもってきたコードでも Organize Imports するとほぼ一発で import 文書いてくれる。不要な import 文は削除される。きれいにパッケージ順にソートしてくれる。Flex Builder にも似たような機能あるけどそれより賢い。

・・・

わるい点もいろいろあるんだけど書くの疲れたので軽くリスト。一番大きいのは AIR 開発系が弱いことだなあ。これがだめなせいで結局 Flash Builder が必要になるっていう。Flex Builder の倍ぐらい値段するんだからそのへんも対応してほしい。

わるい点。
・SDK の設定わかりにくい。
・Build 設定いちいちめんどい。
・指定したファイルだけで SWC つくりたい。
・mxlm いじるんはやっぱビジュアルエディタ必要。
・Cocoa 版はスクロールもっさり。Eclipse Cocoa 版がそうみたい。
・Run とか Debug とかの対象がわかりにくい。
・Plugin はいりすぎ。
・バグ多め。
・高い。

・・・

まー、AS エディタとしては素晴らしい環境なのでお金に余裕があるかたはお試しアレ

Ustream Flash Client API で IRC してみる

BlogFlash

こないだのてら子では中継に初めてニコ生を使ってみたんだけど、初めてすぎて途中でいろいろめんどくなっちゃって Ustream に切り替えちゃった。お金もかかるしねー。まーでもあのコメントがだーって流れるのはそれはそれでおもしろい。で、前にもそんあことを思ったことがあって、Ustream のチャットをニコニコ風にオーバーレイして流すニコニコ Ustream ってのを作ったことがありました。(わー、2 年も前だわw。超絶おもしろかったなあ)そんときは、Ustream のプレイヤー swf から FMS とのやりとりをこっそり拝見させていただきまして、ストリームをぶっこぬいてたのですが、まー、そんな手がいつまでも使えるわけもなく、まったく動作しなくなっておりました。んで、最近 @hoehoe 氏のブログで Ustream Flash Client API とかいうのがあるのを知りまして、じゃー、また作れるやん?ってことでちょっと試したっていう話。実はてら子中に作っていた。前置き長い。

結論から言うと、すげー簡単にできた。大変だったのは API の使い方がわからんというところだ。API ドキュメントがあるんだけど無いに等しい内容でこれだったら FDT とかで SWC 見る方が早い、ってか実はそっちのが正しいみたいな。まー、↓みたいにすれば IRC つながりますので、@hoehoe 氏のやりかたで映像ひっぱってきてのっければニコニコ Ustream 完成ですなー。

package {
    import tv.ustream.irc.Channel;
    import tv.ustream.irc.Chat;
    import tv.ustream.irc.Irc;
    import tv.ustream.tools.DynamicEvent;

import flash.display.Sprite;
import flash.events.Event;

public class IrcTest extends Sprite {

private var _irc:Irc;
private var _channel:Channel;
private var _chat:Chat;

public function IrcTest() {
_irc = new Irc('username', 'password');
_irc.addEventListener('connect', _t);
_irc.addEventListener('connected', _t);
_irc.addEventListener('ready', _t);
_irc.addEventListener('motd', _onMotd);
_irc.addEventListener('createChat', _t);
_irc.addEventListener('createChannel', _onCreateChannel);
_irc.addEventListener('disconnected', _t);
_irc.addEventListener('ioError', _t);
_irc.addEventListener('securityError', _t);
}

private function _t(...args):void {
trace('******', args);
}

private function _onMotd(e:Event):void {
_t(e);
_irc.join('HogeChannel');
}

private function _onCreateChannel(e:DynamicEvent):void {
_t(e);
_channel = e.channel;
_channel.addEventListener('message', _onMessage);
_chat = new Chat('#HogeChannel', _irc);
_chat.send('Uryaaaaaa!!!');
}

private function _onMessage(e:DynamicEvent):void {
_t(e.from + ': ' + e.message);
}
}
}

この IRC クラス、Ustream だけに使えるとか制限あるわけじゃないので freenode とか別の IRC サーバーにも普通につながる。IRC クラスのコンストラクタの第 3 引数にサーバー名渡すだけ。ライセンスは確認してないけど。

Categories: Flash

Comments (2)

  • 雄飛
    Macで生放送をしているものです。
    コメントが流れるIRCを
    画面キャプチャーソフトの
    CamTwistのエフェクトとして取り込むことはできませんでしょうか?
    CamTwistにはIRCが実装されていますが、
    表示が非常に残念なのです(´-ω-`;)
    CamTwistのエフェクトとして実装できれば
    配信者としてはとても嬉しいのですが・・・
  • [...] でまぁとりあえずUstreamを引っ張ってくるswfを作成するところが一番の肝です。 ちゅーわけで、こことかこことか参考にしながらポチポチ作りましょう。 [...]

1000 万パケットで何分間 Ustream できるのか。

Blog

もいっちょ Ustream ネタ。iPhone から Ustream できるようになったのはちょーおもしろいんだけど、ソフトバンクはこないだ通信速度を制限しはじめたですよね、月間 1000 万パケット超えるひとだけみたいだけど。んじゃあ、何分やったら 1000 万パケットになんの?ってのがちょっと気になったので計算してみた。テストに使ったのはこないだ帰り道生中継したときのデータ。サイズは 176 x 146 の小さいほう。ごにょごにょして FLV をぶっこぬいた。

再生時間 (秒) 695 sec
再生時間 (分) 11.6 min
転送データ量 10,695,104 bytes
128 bytes/packet
トータルパケット数 83,555.5 packet
1分あたりのパケット数 7,213.4 packet/min
月間1000万パケット制限 10,000,000 packet/month
分にすると 1,386.3 min/month
時間にすると 23.1 hour/month

ふむ。計算があっていれば、23 時間で 1000 万パケット超える。まー、そのまえにバッテリーが切れるな。 Ust だけでこれなので他にもいっぱいつかうひとだったら危険かも。