Home > Archives > 2009-01

2009-01

意外といるもんだ


今日F-siteに行ってきました。

そこで配られた資料の中に、北海道出身のメディアデザイナーの方が参加しているってことを発見!

いや~、どんな方なんだろう…

多分、このブログなんて見ていらっしゃらないだろうけど、一応書いておきます。

東京で月一くらいで『ラーメンサラダを広める会』っていうイベントをやっています。

会の内容としては、皆で北海道の美味しいものを、いろいろ食べに行こう! っていう感じです。

北海道出身でFlash好きな方が4~5名くらい参加されていますので、よろしければ次回ご参加くださいませ~!

ちなみに前回はこんな感じで開催しました!

Adobe MAX&SceneIdUtilクラスを使ってみる


行ってきました、AdobeMAX。

メチャメチャ楽しかったです。サイコ~でした!

各セッションの詳しい内容とかは、他の方が詳しくレポートされると思うので、そこは割愛。

僕が今日のイベントで感じたことは、「やっぱFlashって楽しい!」ってこと。

これを再認識出来ただけでも、行った価値は十二分にありました!

今日も沢山のFlasherさん達とお話させていただきました。ありがとうございます!

中でもいつもブログを読ませて頂いているClockMakerさんnagggさんに、ご挨拶出来たし…

nagggさんには、「ブログ見てます~!」というお言葉も頂いちゃいました!(社交辞令でもメチャメチャ嬉しい…)

ヤバイです。かなりテンション上がっちゃいました!

家に帰ってきて、僕も早速ジャージに着替えちゃったりなんかして…(ちなみにカラーは黒ですが…)

暫く経ってもテンションは静まらなかったので、このままProgressionネタをエントリしちゃいますっ!

SceneIdUtil

ここ最近、utilクラスを攻めているので、今回はSceneIdUtilクラスについてです。

asdocには次の様に書かれています。

指定されたシーン識別子のルート要素を省略したショートパスを返します。

なるほど。感じとしては/index/hogeってルートのシーンがあったら、hogeって返してくれるってことかな? と思いながら、あれこれ試してみました。

import jp.progression.core.utils.*;
public class AboutButton extends CastButton {
  (略)
  public function AboutButton( initObject:Object = null ) {
    super( initObject );

    // クリック時の移動先を設定する
    sceneId = new SceneId( "/index/about" );

    //toShortPathを使ってみる
    trace(SceneIdUtil.toShortPath(sceneId));

sceneIdはボタンのクリック先を指定しているのに使っているので、今回はボタンのことをイロイロ設定しているクラスファイルで試してみました!

これを実行してみると、出力パネルには以下のように表示されます。

/about

確かにシーンの識別子のルート要素を省いたものを返してくれてますね。

取り急ぎこんな感じです。何かあったら、後日追記します!

明日はF-siteに参加予定です。

collectBreakを思いっきりスルーしてました


昨日の夜のこと

northprintさまとメッセをしていたら、StringUtilクラスのcollectBreakを思いっきりスルーしていたことに気がつきまして…

以下メッセの内容を簡単に…

(northprintさん)使ってみたんですけど、StringUtilクラスのcollectBreakって、凄いですよね~!

(flabaka)まだ触ってないです…

(northprintさん)Windowsで、改行がCR+LF形式で保存されたデータを読み込む際の(改行が2行になっちゃう)バグを取ってくれますよ~

(flabaka)それは凄い…

と、まぁ、こんなやり取りがありまして…

あれっ? でもStringUtilクラスって、僕、数日前にエントリしたよなぁ…。collectBreakなんてあったかなぁ…

で、数日前のエントリ(StringUtilクラスを使ってみる)を見てみたら…

collectBreak、思いっきりスルーしていました!

ってな訳で、(僕一人で悦に入ってても意味がないので)今日はcollectBreakを使ってみました! というエントリです。

テキストを用意する

読み込むテキストを用意します。

あいうえお

かきくけこ

さしすせそ

このデータを、エンコードをUTF8。改行方法をCR+LFで保存しておきます。

Progressionで外部テキストを読み込んでみる

何通りか方法があると思いますが、今回はURLLoaderを使ってみました。

private var txt:TextField;
txt = new TextField();
txt.autoSize = TextFieldAutoSize.LEFT;
txt.width = 200;
txt.setTextFormat( new TextFormat(null,20));
addChild(txt);
(略)
var loader:URLLoader = new URLLoader(new URLRequest("sample.txt"));
loader.addEventListener(Event.COMPLETE,function(e:Event):void{
  txt.text = loader.data;
});

これを実行すると、こんな感じになります。

CR+LF形式をそのまま読み込んだ場合

テキスト側では改行が1行なのに、読み込んでみたら改行が2行になっています…

collectBreakを使ってみる

そこで、collectBreakの出番です!

private var txt:TextField;
txt = new TextField();
txt.autoSize = TextFieldAutoSize.LEFT;
txt.width = 200;
txt.setTextFormat( new TextFormat(null,20));
addChild(txt);
(略)
var loader:URLLoader = new URLLoader(new URLRequest("sample.txt"));
loader.addEventListener(Event.COMPLETE,function(e:Event):void{
  //collectBreakを適用させる
  var mytxt:String = StringUtil.collectBreak(loader.data);
  //collectBreakを適用させたデータを、テキストフィールドに
  txt.text = mytxt;
});

これを実行してみると…

CollectBreakを適用させた場合

テキスト通りに改行が1行になってくれました!

試しに、先のテキストデータをエンコードUTF8。改行方法をCRのみで保存(sample2.txt)して、以下のコードを実行してみると…

private var txt:TextField;
txt = new TextField();
txt.autoSize = TextFieldAutoSize.LEFT;
txt.width = 200;
txt.setTextFormat( new TextFormat(null,20));
addChild(txt);
(略)
var loader:URLLoader = new URLLoader(new URLRequest("sample2.txt"));
loader.addEventListener(Event.COMPLETE,function(e:Event):void{
  txt.text = loader.data;
});

テキストデータと同じく、改行は1行で表示されました。

どうやら、CR+LF形式で保存した場合のみの現象(バグ)みたいですね。

CR+LF形式で保存されたテキストデータを読み込む際には、collectBreakを使ってあげると良さそうです~!

DateUtilクラスを使ってみる


DateUtilクラスを使ってみました。

getMaxDateLength

指定した月の最大日数を返してくれます。

//日時を指定する
trace(DateUtil.getMaxDateLength(new Date(2009,1,28)));

こんな感じで今日の日付を指定してあげると、28という値が返ってきます。

でもnew Dateに引数を渡してあげないと、違う値が返ってきます。

//日時を指定しない
trace(DateUtil.getMaxDateLength(new Date()));

これを実行すると、31という値が返ってきます。一月は31日ありますもんね…

最初の例で、どうして今日の日付を引数として渡してあげたのに、31って返って来ないの? というと…

newdate.setMonth( date.getMonth() + 1 );

DateUtilクラスの中で、上記の様に指定されているからです。

(結果として)引数で渡してあげた月+1となってしまうので、(最初の方の例では)実は2月の最大日数が表示されていたのです。(だから28と表示された)

new Date()と指定した場合は、(月の値は)0~11が返ってきます。だから+1で、今月ってことになります。

今月の最大日数を求めたい場合は、

  1. new Dateに引数を渡さない
  2. (引数として渡す月-1)と指定する

このどちらかをしてあげれば、良いかと思います。

Adobe MAX 2009の僕の登録セッション


何やらAdobe MAX 2009の登録セッションを公開している方が多いので、僕もそれに倣って…

★一日目:1月29日(木)

大人の事情により不参加

★二日目:1月30日(金)

10:00~11:30
S-1 基調講演
11:40~12:40
L-5 Adobe AirとFlexによるエンタープライズポータル機能の事例紹介
13:00~14:00
A-5 映像とプログラミング
14:20~15:20
A-6 [Flash]アイデアの実装:コントロールと最適化
15:50~16:50
D-7 コンテンツ制作の決め手、Progressionが可能にするFlash の未来
17:10~18:10
D-8 コミッタ全員集合!? Spark project ライトニングトークセッション
18:40~20:40
S-4 スペシャルイベント:EDGE Now! Of the Year

結構長いこと東京に住んでいるというのに、ゆりかもめに乗るのは今回が初だったりして…(お台場には行ったことありますよ!)

セッション登録した際には、ランチセッションとかあったはずなのに、気が付いたらなくなっているし…

ランチタイムも一時間くらいあったので、そこで『ランチでMAXでもやりましょう!』なんて言ってたら、いつの間にかランチタイムもなくなっているし…

20分で会場抜けだして、注文して、急いで胃袋に詰めこんで、帰ってきなさい! ってことなんですかねぇ…

何だかんだいいつつ、思いっきり楽しみにしてます! お腹一杯で帰ってこれそう…

会場で見かけたら、声でも掛けてくださ〜い!

Home > Archives > 2009-01

Search
Feeds
Meta

flashDevelopスポンサー

Return to page top