いまさらですが、Flexのプログラミングについて書きます。
ボクにとっては、このプログラミングは非常にとっつきにくかったです。
イベントを受け取る関数がガンガン生成されてしまうのが、どうにも気に入らないです。
たとえばRTMP接続するときには・・・
- NetConnectionつくる
- NetStreamつくる
- Videoに関連付ける
- playメソッドで放送開始
となります。
これが一連の動作なんで、StreamPlayという汎用関数をつくったとしたら
public function StreamPlay():Boolean{
if(!createNetConnection())
// エラー処理
if(!createNetStream())
// エラー処理
if(!playVideo())
// エラー処理
// 完了
}
って書かせてもらえたらずいぶん楽なんですが
1つずつイベントが飛んでくるので
public function StreamPlay():Boolean{
if(!createNetConnection())
// エラー処理
}
private function NetConnectionEvent(evt;NetStatusEvent):void{
// 成功判定
if(!createNetStream())
// エラー処理
}
private function NetStreamEvent(evt;NetStatusEvent):void{
// 成功判定
if(!playVideo())
// エラー処理
}
private function playVideoEvent(evt;NetStatusEvent):void{
// 成功判定
// 元のクラスに初期化完了イベントを投げる。
}
といった感じにどんどんメソッドが増えていってわけわからなくなります。
内部でまったく別の初期化の途中処理とかいれてしまうと、もうわけわからん状態に・・・
いまのところ回避策としては専用のクラスをつくって
class RtmpManage{...}
public function StreamPlay():Boolean{
// RtmpManageに放送開始要求
}
public function StreamPlayStart():void{
// RtmpManageから放送開始準備完了をうけとる。
}
という形にして内部のごちゃごちゃした初期化部を見えなくして事なきを得てますが
他の人たちはどうやってるのだろう・・・とおもってます。
以上駄文でした。
最終更新:2010年05月09日 11:03