« 2006年06月 | メイン | 2006年08月 »

2006年07月20日

FLVPlayback

今日はAS3はまだ手をつけて無し。ちょっとFlash8でYoutubeAPIをいじってました。
Flvって仕事で扱うケースがほとんどなかったんでいじってみたいのです。
FLVPlaybackってコンポーネントがつかうとよいのかなと思い調べるとこいつは他のコンポーネントとちがってライブラリから出すときはMovieClipのようにattachMovieしなきゃいかんらしい。

参考
live docs

とりあえず下のようにやったらflv再生始まった。クラスの中だとFLVPlaybackを型にした変数にattachMovieの返り値をいれようとするとエラーになるんだよなー。
MovieClipだとエラーにならなくてcontentPathの設定もできます。

var _mc:MovieClip = this.attachMovie("FLVPlayback", "_flv", 1);
var clip:MovieClip = this.createEmptyMovieClip("mc1", 2);
clip.onMouseUp = function (){
	trace("mouseUp");
	_mc.contentPath = "xxxxx.flv";
	this.removeMovieClip();
}

2006年07月19日

トラックバックテスト

なんかこのブログトラックバックできない気がする(^^;
ちょっとテストエントリーってことで自分にトラックバックw

[追記]
やはりできてないようでした。エラーが出てたんで調べてリンク先の記事を参考にさせていただき修正。

参考
MT3.x+mod_perl環境でMTプラグインのロードに失敗するとエラーになる ~ hori-uchi.com

オーバーライド

AS3でクラスを継承してメソッドオーバーライドするときはちゃんとかかなきゃいかんのですな
ふーん

public override function hoge(){ }

MouseEvent:F-site投稿

先日のエントリーをもう少し簡単にしてF-siteに投稿。最初はDocumentClassのクラスで設定してたけど要点はマウスのイベントについてなんでスクリプトをタイムラインに移行。いろいろ新しいモノや変ったモノなどなどさりげなく入れたい気持ちもある反面あまりいれすぎるとわけわからなくなりそうだしバランスが難しい。まあ試行錯誤ですな。
 SpriteクラスでshapeはAS3MLで出てたってこともあってMovieClipでaddChildするやつにしといた。あえてMCは円にしたのはヒットする領域も矩形判定ではないんだなーなんてふと気づいたから。 trace(xxxxx , yyyyyy)なんて新しい書き方も一応しといたのとappenText()も使ってみた。このあたりも説明したい気もしたがあまりいろいろあると混乱の元になりそうだし、また別ネタにしても良いし説明するテキスト書くのも結構時間かかるんでやめといた。といいつつダブルクリックは入れてしまった。

ちなみに最初は以下のクラスをDocumentClassに設定してました。

[ソース修正] 
コンストラクタ内の処理が多すぎたんで継承しようと思ったらいけてなかったw



package {
import flash.display.Sprite;
import flash.display.MovieClip;
import flash.events.MouseEvent;
import flash.text.TextField;
import flash.text.TextFormat;
public class MouseTestAs3 extends Sprite{
private var my_txt:TextField;
public function MouseTestAs3(){
setEvent();
createText();
}
public function setEvent(){
var mcClass:MovieClip = new myClass();//ライブラリのMovieClip
mcClass.doubleClickEnabled = true;//ダブルクリック設定
mcClass.addEventListener( MouseEvent.MOUSE_DOWN, downListener );
mcClass.addEventListener( MouseEvent.MOUSE_UP, upListener );
mcClass.addEventListener( MouseEvent.MOUSE_MOVE, moveListener );
mcClass.addEventListener( MouseEvent.CLICK, clickListener );
mcClass.addEventListener( MouseEvent.DOUBLE_CLICK, dClickListener );
addChild(mcClass);
}
//TextField作成
public function createText(){
my_txt = new TextField();
my_txt.x = 340;
my_txt.y = 18;
my_txt.multiline = true;
my_txt.background = true;
my_txt.border = true;
my_txt.width = 180;
my_txt.height = 370;
my_txt.text = "--- start ---- \n\n";
var format:TextFormat = new TextFormat();
format.size = 12;
format.font = "Osaka";
my_txt.setTextFormat( format );
addChild( my_txt );
}
public function addText(str:String){
my_txt.appendText( str );
my_txt.scrollV = my_txt.maxScrollV;
}
public function downListener( _event:MouseEvent ){
trace("MOSE_DOWN ", _event );
trace("");
addText( "MOSE_DOWN " + "\n");
}
public function upListener( _event:MouseEvent ){
trace("MOSE_UP ", _event );
trace("");
addText( "MOSE_UP " + "\n");
}
public function moveListener( _event:MouseEvent ){
trace("MOUSE_MOVE " , _event );
trace("");
addText( "MOUSE_MOVE " + "\n");
}
public function clickListener( _event:MouseEvent ){
trace("CLICK " , _event );
trace("");
addText( "CLICK " + "\n");
}
public function dClickListener( _event:MouseEvent ){
trace("DOUBLE_CLICK " , _event );
trace("");
addText( "DOUBLE_CLICK " + "\n");
}
}
}

2006年07月18日

現時点での雑感

デビューセミナー後の宴会やmixiでいろいろな方に教えてもらったりした中でちょっと気づきました。
自分的に少々勘違いというか思い違いしてたことはActionScript3が動作する AVM2 (ActionScript Virtual Machine 2)が旧ActionScriptが動作するAVM1と比べて約10倍速いという部分。10倍速いという部分が自分の中で変に先にきてたけど速くなる部分はスクリプトの計算処理の部分。で描画処理などの部分は変わらないってことを考えるとActionScript3にすればなんでもよいというわけもない。スクリプトで描画ってのはデザイン的な限界もありそうだしさらにスクリプトででかい面積のShapeなど描画した場合って処理的に描画計算の負荷はどうなるんよって気もしてきた。ま、このへん実際自分で検証しつつ調べていく必要がありそうですが、この先の取り組み方として何が10倍早くて何が変わらないのかは正確に理解するように取り組んでいかないとなあ。

2006年07月16日

MouseEventにはまる

mixiの日記にもほぼ同じこと書いてますが後々の検索などはこちらに書いた方が良いかなと思うので書いておきます。エントリータグもできたし。

MouseEventにちょっとはまってしまいました。今までのFlashだとonMouseMoveとかonMouseUpとかどのMovieClip に書いてもステージの上というかSWF上であればイベント取れてたんでその感覚でやろうとShapeとかもない空のSpriteクラスにわりあててたら動かない。あれやこれややってたらどうやらインスタンスの上でのみイベントが発生するらしく最初は空だったんでヒット領域がないような状態だったみたい。 今日AS3系のblogをチェックしてたら参考になることがfladdict.netさんのところに書いてありました。
AS3メモ MouseEventについて ~ fladdict.net blog

試したソースはこんな感じ
ちなみに下のソースはダブルのクリックのイベントが何故か取れません。理由は不明。だけどAdobeのサンプルもダブルクリック動いてない気がする(^^;

[追記]
野中さんにコメントで指摘いただいたようにInteractiveObject.doubleClickEnabledプロパティがデフォルトではfalseのようで以下の一文を追加でダブルクリックは動作しました。
mcClass.doubleClickEnabled = true;



package {
import flash.display.*;
import flash.events.*;
public class MouseTest extends Sprite{
public function MouseTest(){
trace("constructe")
var mcClass:MovieClip = new myClass();//ライブラリのMovieClip
mcClass.doubleClickEnabled = true;//追加
mcClass.addEventListener( MouseEvent.MOUSE_UP, upListener );
mcClass.addEventListener( MouseEvent.MOUSE_MOVE, moveListener );
mcClass.addEventListener( MouseEvent.DOUBLE_CLICK, dClickListener );
addChild(mcClass);
}
public function upListener( _event:MouseEvent ){
trace("MOSE_UP ", _event)

}
public function moveListener( _event:MouseEvent ){
trace("MOUSE_MOVE " , _event );
}
public function dClickListener( _event:MouseEvent ){
trace("DOUBLE_CLICK " , _event );

}
}
}


※flaのDocument ClassにMouseTestを設定,ライブラリの絵を書いたMCのclassにmyClassを設定

2006年07月15日

Action Script 3 デビューセミナー

ActionScript3デビューセミナー見に品川まで行ってきました。

 AS3これからやるぞってモチベーションがあがるようになるかと思いきやいろいろ問題も見えてきてしまった。
完全に旧スタイルとAS3が分離してしまうと直感的な部分がなくなってしまいそうで。スクリプトほとんど書かないでAS3書き出しするだけでも恩恵受けるかなとも一瞬思ったけど元々描画にかかる負荷を軽減しているのがAS3が軽く動くということなのであんまり意味がないそうです。AS3で開発するには分業するときのワークフローも結構変わってきそう。まあ元々Flashの分業自体あまり確立してなかったのかもしれないですが。もともとWebの仕事なんて常に学習してないと取り残されてしまうのが常ではあるんだけど、かなり敷居も高くなって直感的なところがなくなってきた結果として面白みのあるコンテンツが減っていくかもというところがちょっと心配。これからいろいろAS3いじってみて分ることもありそうなんでもうちょっといじってみます。セミナーとは関係ないですが個人的にlocalConnection使って新旧プレイヤーでデータのやりとりとか試してみたくなってきました。

FlashOOPJapanのサイトからActionScriptについての記事があるblogへのリンクを貼ってくれてるそうなんでAS3のことを勉強するには便利そうです。

2006年07月13日

肝になりそうなSpriteクラス

MovieClipクラスがSpriteクラスのサブクラスってことからしてもAS3ではSpriteクラスはかなり大事そうな予感。MovieClipよりSpriteのが軽いらしいんでタイムラインとか必要ない場合はSpriteクラスを積極的に使ったほうがよさ気。

[参考]
akihiro kamijo : Splite クラスと MovieClip クラス
FumioNonaka.com : Spriteクラス
F-site:AS3.0での画像読込をしてみよう
F-site:new演算子でビジュアルオブジェクトをつくる

ちょっとしたテストをしたところインスタンス生成時には階層はなくaddChildで配置して初めて階層のプロパティを持つって感じ?当たり前といえばそうなのかもだけど少々はまった。


SpriteTest.as


package {
import flash.display.Sprite;
public class SpriteTest extends Sprite{
public function SpriteTest(timeline:Object){
TraceFunc(timeline);
timeline.addChild( this );
trace("- - - - - - - - - -");
TraceFunc(timeline);
}
public function TraceFunc(timeline){
trace(null == this.parent);
trace("this.parent == timeline : " + (this.parent == timeline));
trace("this.root == timeline.root : " + (this.root == timeline.root));
}
}
}

asと同じフォルダに置いたflaのタイムライン1フレーム目
var sTest:SpriteTest = new SpriteTest( this );

Movable Type 3.3

このブログもMovable Type3.3にアップグレードしました。
いままであったカテゴリーとどう使い分けるのかいまいち理解できてませんが新しい機能のエントリー・タグが面白そうです。

sixapartのマニュアルにエントリータグのカスタマイズの仕方とか出てました。
エントリー・タグを活用したテンプレートのカスタマイズ

テスト用のテンプレート作ってみましたがタグクラウドとかで使えるようですね。

intとかuintとかとNumber

intとかuintの方がNumberより速度が速いらしい。
uint は "0 から 4,294,967,295"とのことで正の数と考えてよさそうだ。

ちなみに小数点以下は切り捨てられる様子

var tes:uint =7.5;
trace(tes);
//出力7

7.5ではなくて-1を入れたりするとやはりエラーになった。
intは"-2,147,483,648 から 2,147,483,647"だそうです。
Numberとの使い分けを意識づけるのがよさそう。

参考 akihiro kamijo int と uint

[追記]
F-siteの野中さんの記事はuintで定義して負の数使うときはマイナスつけるって感じなのかー。なるほど。
var nSize:uint = 50;


mySprite.graphics.drawRect(-nSize/2, -nSize/2, nSize, nSize);

2006年07月10日

BASSANOVA@新代田

BASSANOVA

新代田のBASSANOVA(バサノバ)でグリーンカレーラーメンです。
ここでカレーラーメン食べるのは2度目。
かなり美味しいんですが他のスープもうまくてなかなか食べれませんでした。
パクチーが入ってて味はかなり美味しいです。
カレーラーメン用の麺は通常のラーメンより太めでカレーにマッチしてる感じ。


世田谷区羽根木1-4-18

グレイシースプーン

世田谷ライフマガジン No.16に載ってたGREASY SPOON(グレイシースプーン)という店で旧友と3人で軽く飲む。
こじんまりした店でなかなか良い雰囲気でした。鳥肉がうまかった。

世田谷区池尻2-30-12

2006年07月08日

traceができなくなって焦る

Flash Professional 9 ActionScript 3.0 Preview

Flash9のプレビュー版で設定をあちこちいじってたらtraceや変数のリストアップなど出力ができなくなる事態発生。
原因は上の画像にあるfilter levelをNoneにしていたことだったがちょっと時間かかり結構あせった(^^;
確認したらFlash8の日本語版にもあったがここをいじったことはなかったなあ。いまいち用途がわかりません。

2006年07月07日

とほ 2006‐2007

とほ 2006‐2007

今年は表紙のデザインが大分かわりましたね。
並べてみると年々薄くなってる気が(笑
中身も大分例年と感じがかわっています。
中々面白い特集などもある反面もう少しいろいろな宿主さんの声などもきいてみたかった気がします。
宿の方々に一新した理由や評判など泊まったとき聞いてみようかな。

2006年07月04日

Flash Professional 9パブリックアルファ

先日Flash Professional 9パブリックアルファがadobeのサイトで公開されました。

しかしWindows2000ではインストールできないんですね(涙
メインマシンをWindowsXPにしたほうが良いのかなーー。。。

参考 F-site
Flash Professional 9 ActionScript 3.0 Preview