TONPOOBLOG 移転のお知らせ

これまで本URL(http://tonpooblog.blogspot.com/)で運営してきたこのTONPOOBLOGですが、この度下記の新URLに移転することとなりました。

http://www.tonpoo.com/blog/

今後とも上記URLにて、変わらぬご愛顧をお願い致します。

TONPOOBLOG管理人:Tonpoo.com

2009年6月2日火曜日

TONPOOBLOGを引っ越しました!

Bloggerさんで始めたこのTONPOOBLOGですが、この度晴れて自分のドメイン内で運用することにしました。今後は以下のURLで細々と(?)継続する予定です。

http://www.tonpoo.com/blog/

皆様方にはお手数をおかけしますが、今後とも上記URLにて、TONPOOBLOGをよろしくお願いいたします!

2009年5月29日金曜日

Tweener: TextShortcuts

「超訳:Tweenerドキュメント&言語リファレンス」の翻訳作業の中で、TweenerのTextShortcutsについてやってた時に知ったこと。Tweenerって、テキストフィールドの文字列までトゥイーンできるんですね!どういうことかというと、こういうこと↓

Tweener 1.31.66 を試す(8) ~TextShortcuts~【閃光的網站・弛緩複合体 -Review Division-】

「_text」プロパティとかおもしろいなあ。これ、今度使おう。

MovieClip.scrollRectプロパティ

「超訳:Tweenerドキュメント&言語リファレンス」の翻訳作業を進める中で、MovieClip.scrollRectプロパティというものの存在を知った。

import flash.geom.Rectangle;

//ステージ上にムービークリップ(灰色・100x300)を生成
var mc:MovieClip = this.createEmptyMovieClip("movie_mc",this.getNextHighestDepth());
mc.beginFill(0x999999);
mc.moveTo(0,0);
mc.lineTo(100,0);
mc.lineTo(100,300);
mc.lineTo(0,300);
mc.endFill();

//生成したムービークリップの中にテキストフィールドを生成し、ダミーテキストを表示
var txt:TextField = mc.createTextField("movie_txt",mc.getNextHighestDepth(),0,0,100,300);
txt.wordWrap = true;
txt.multiline = true;
txt.text = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.";

//scrollRectとして設定するためのRectangleオブジェクトを生成
var rect:Rectangle = new Rectangle(0,0,mc._width,100);

//生成したムービークリップのscrollRectとしてrectを設定
mc.scrollRect = rect;
//scrollRectプロパティを設定したムービークリップのcachaAsBitmapプロパティをtrueに設定
mc.cacheAsBitmap = true;


ここまでだとマスクと何ら変わりない。scrollRectの「scrollって何?」って思ったら、こういうことらしい↓

this.onMouseDown = function():Void{
    this.onEnterFrame = function():Void{
        //scrollRectに設定したRectangleオブジェクトのyプロパティを変更
        rect.y ++;
        //scrollRectオブジェクトを再設定
        mc.scrollRect = rect;
    };
};

this.onMouseUp = function():Void{
    delete this.onEnterFrame;
};


おお、スクロールする!うん、割とこれは便利かもしれないですね。今後、活用しよう。

ちなみにTweenerの特殊プロパティを使ってscrollRectをトゥイーンさせた例は下記の通り。
import flash.geom.Rectangle;
import caurina.transitions.Tweener;
import caurina.transitions.properties.DisplayShortcuts;
DisplayShortcuts.init();

//ステージ上にムービークリップ(灰色・100x300)を生成
var mc:MovieClip = this.createEmptyMovieClip("movie_mc",this.getNextHighestDepth());
mc.beginFill(0x999999);
mc.moveTo(0,0);
mc.lineTo(100,0);
mc.lineTo(100,300);
mc.lineTo(0,300);
mc.endFill();

//生成したムービークリップの中にテキストフィールドを生成し、ダミーテキストを表示
var txt:TextField = mc.createTextField("movie_txt",mc.getNextHighestDepth(),0,0,100,300);
txt.wordWrap = true;
txt.multiline = true;
txt.text = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.";

//scrollRectとして設定するためのRectangleオブジェクトを生成
var rect:Rectangle = new Rectangle(0,0,mc._width,100);
mc.scrollRect =rect;
//scrollRectプロパティを設定したムービークリップのcachaAsBitmapプロパティをtrueに設定
mc.cacheAsBitmap = true;

//Tweenerの特殊プロパティを使ってscrollRectを操作
this.onMouseDown = function():Void{
    Tweener.addTween(mc,{
        _scrollRect:rect,
        _scrollRect_y:(mc._height),
        time:2
    });
};

Googleのコラボレーションツール

Googleが「メール、IM(インスタントメッセージング)、ドキュメント共有などを統合したリアルタイムのコミュニケーション、コラボレーションサービス。」とやらを開発者向けに公開したそうです。

リアルタイムのコンテンツ共有:Google、リアルタイムコラボレーションツール「Google Wave」を発表 - ITmedia News

そのうちこれを使ってプロジェクトを進めたりするようになるかもしれませんね。

2009年5月28日木曜日

Yahoo! Analytics, もとい・・・

Yahoo! JAPAN謹製のアクセス解析サービス(のベータ版)が公開されたようです。

Yahoo!アクセス解析

Google Analyticsの対抗馬となりうるでしょうか。

2009年5月27日水曜日

オンラインシンセサイザー??

「実際の楽器を操作する感じで音楽が制作できてしまう」という、フリーのオンラインサービスがあるそうです:

Hobnox - Audiotool

なんというか、Flashで作られた、よくできたシンセのようなもの(?)であることまではわかったんですが、肝心の使い方がよくわからないので、楽器としての性能については不明です。

元ネタはこちらのブログの記事から。チュートリアルムービーも載ってます:

とんでもない音楽系ウェブアプリが出た - Hobnox Audiotool | DIGITAL DJ

2009年5月26日火曜日

SPAM?

携帯に以下のようなメールが来た。
件名:無題
本文:もちろん(親指を挙げてる絵文字)仕事が一段落したら伺います(人が走っている絵文字)

差出人はアドレス帳に登録のないアドレス。SPAM?むむむ、謎です。

2009年5月20日水曜日

配列の(浅い)コピー

ActionScriptで配列をコピーする方法について。

Flash CS4 Professional ActionScript 2.0

下記のように単に元配列を参照しただけでは、copy_arrayへの変更が元配列(base_array)にも及んでしまう。
var base_array:Array = new Array("a","b","c");
var copy_array:Array = base_array;
copy_array.shift();
trace(base_array); //"b","c"←base_arrayの方も変更されている
trace(copy_array); //"b","c"

Array.slice()メソッドを引数なしで使うことで、配列の(浅い)コピーを作ることができる。
var base_array:Array = new Array("a","b","c");
var copy_array:Array = base_array.slice();
copy_array.shift();
trace(base_array); //"a","b","c"←base_arrayの方は元のまま
trace(copy_array); //"b","c"

Tweener 1.32.74

Tweenerがバージョンアップ(1.31.74→1.32.74)との報告が公式MLでありました。

[Tweener] Tweener 1.32.74

変更点についての記述は下記の通り(一部抜粋)。

変更点は至ってわずか(ほんのコード2行分)。でも重要な変更です。

*Tweenの上書きを「オプション」扱いとし、デフォルトでは無効とした。
*addTween()に「overwrite:」パラメーターを新規に追加。この値が「true」だったら、新しいtweenとオーバーラップする同一オブジェクトの同一プロパティに設定されているすべてのtweenを上書きする。

Tweenの上書きをたくさん使ってるような場合には、この変更によって互換性が失われることがあるかもしれません。ただ、特に大量の数のtweenを生成する場合のパフォーマンスが大幅に向上されるので、こうすることが重要だと考えました。


公式サイトの方にはまだ反映されてないし、上記メールの文中にあるURLはSVN用のものなので、Subversion使ってる人向けってことですかね。

2009年5月15日金曜日

Windows Vistaの画面デザインによる負荷について

Microsoft Windows Vista - Wikipedia#全エディション共通のテーマ

上記の項目中、注目すべきは以下の文章↓
グラフィックボードがAeroに対応しているのであれば、それを利用するためにAeroを有効にした方が描写速度は向上する。そのため、Windows XPで動作速度向上の手段として用いられたクラシックスタイルは、Vistaで適用すると逆にCPUのリソースを利用するようになったため、PCの処理能力は低下してしまう。
「ホントかな?」というのが正直な所。実際問題、マイコミジャーナルの以下の記事では、「Vistaが重く感じられる場合、Vistaベーシックに切り替え、それでも重い場合はWindowsクラシックに切り替えるのが妥当といえそうだ。」と結論付けられている。

【特集】~インストールから設定・活用まで~ すべてが分かるWindows Vista大百科 (32) パフォーマンスの情報とツール(2) | パソコン | マイコミジャーナル

諸事情から会社で使うメインPCをVistaマシンにすることになったので、使いながら試してみるとしましょう。

2009年4月22日水曜日

超訳:Tweenerドキュメント&言語リファレンス

Tweenerのドキュメントの一部を日本語化してみました。ただ、未完成&わりといいかげんなので、参考程度に利用してみてください。

超訳:Tweenerドキュメント&言語リファレンス

2009年4月21日火曜日

Tweener事始め:addCaller()

addCallerメソッドを使うことで、タイマーのような役割を持たせることもできる。
ただ、transitionパラメーターを何も指定しないと、onUpdateパラメーターで指定したファンクションが等間隔に実行されるのではなく、実行間隔にイージングがついて実行されてしまうようなので注意。
//Tweenerクラスを読み込み
import caurina.transitions.Tweener;

var val0:Number = 0;
var val1:Number = 0;

tween0_btn.onRelease = function():Void{
    //xReflesh0ファンクションを10秒間に100回実行
    Tweener.addCaller(this,{onUpdate:xReflesh0, time:10, count:100});
};
tween1_btn.onRelease = function():Void{
    //xReflesh1ファンクションを10秒間に100回、等間隔に実行
    Tweener.addCaller(this,{onUpdate:xReflesh1, time:10, count:100, transition:"linear"});
};
reset_btn.onRelease = function():Void{
    //リセット
    xReset();
};

function xReflesh0():Void{
    val0++;
    text0.text = val0;
}
function xReflesh1():Void{
    val1++;
    text1.text = val1;
}
function xReset():Void{
    Tweener.removeAllTweens();
    val0 = 
    val1 = 0;
    text0.text = 
    text1.text = "";
}


Tweener事始め:transitionパラメーター

addTweenにtransitionパラメーターを追加してみる。transitionパラメーターの種類はこのページにあるように沢山あるんだけど、とりあえず「Simple」な21パターンを試してみた。あと、removeAllTweens()を使ってリセットボタンも実装。

//Tweenerクラスを読み込み
import caurina.transitions.Tweener;

reset_btn.onRelease = function():Void{
    //全トゥイーンを削除
    Tweener.removeAllTweens();
    //ball_mcを戻す
    ball_mc._x = 30;
};
tween0_btn.onRelease = function():Void{
    Tweener.addTween(ball_mc, {_x:270, time:1, transition:"linear"});
};
tween1_btn.onRelease = function():Void{
    Tweener.addTween(ball_mc, {_x:270, time:1, transition:"easeInSine"});
};
tween2_btn.onRelease = function():Void{
    Tweener.addTween(ball_mc, {_x:270, time:1, transition:"easeOutSine"});
};
tween3_btn.onRelease = function():Void{
    Tweener.addTween(ball_mc, {_x:270, time:1, transition:"easeInQuad"});
};
tween4_btn.onRelease = function():Void{
    Tweener.addTween(ball_mc, {_x:270, time:1, transition:"easeOutQuad"});
};
tween5_btn.onRelease = function():Void{
    Tweener.addTween(ball_mc, {_x:270, time:1, transition:"easeInCubic"});
};
tween6_btn.onRelease = function():Void{
    Tweener.addTween(ball_mc, {_x:270, time:1, transition:"easeOutCubic"});
};
tween7_btn.onRelease = function():Void{
    Tweener.addTween(ball_mc, {_x:270, time:1, transition:"easeInQuart"});
};
tween8_btn.onRelease = function():Void{
    Tweener.addTween(ball_mc, {_x:270, time:1, transition:"easeOutQuart"});
};
tween9_btn.onRelease = function():Void{
    Tweener.addTween(ball_mc, {_x:270, time:1, transition:"easeInQuint"});
};
tween10_btn.onRelease = function():Void{
    Tweener.addTween(ball_mc, {_x:270, time:1, transition:"easeOutQuint"});
};
tween11_btn.onRelease = function():Void{
    Tweener.addTween(ball_mc, {_x:270, time:1, transition:"easeInExpo"});
};
tween12_btn.onRelease = function():Void{
    Tweener.addTween(ball_mc, {_x:270, time:1, transition:"easeOutExpo"});
};
tween13_btn.onRelease = function():Void{
    Tweener.addTween(ball_mc, {_x:270, time:1, transition:"easeInCirc"});
};
tween14_btn.onRelease = function():Void{
    Tweener.addTween(ball_mc, {_x:270, time:1, transition:"easeOutCirc"});
};
tween15_btn.onRelease = function():Void{
    Tweener.addTween(ball_mc, {_x:270, time:1, transition:"easeInElastic"});
};
tween16_btn.onRelease = function():Void{
    Tweener.addTween(ball_mc, {_x:270, time:1, transition:"easeOutElastic"});
};
tween17_btn.onRelease = function():Void{
    Tweener.addTween(ball_mc, {_x:270, time:1, transition:"easeInBack"});
};
tween18_btn.onRelease = function():Void{
    Tweener.addTween(ball_mc, {_x:270, time:1, transition:"easeOutBack"});
};
tween19_btn.onRelease = function():Void{
    Tweener.addTween(ball_mc, {_x:270, time:1, transition:"easeInBounce"});
};
tween20_btn.onRelease = function():Void{
    Tweener.addTween(ball_mc, {_x:270, time:1, transition:"easeOutBounce"});
};


Tweener事始め:addTween()その1

とりあえずAS2版で色々実験。まずは基本であるaddTween()メソッドのテスト。

ステージ上にボタン用のbtn_mcとトゥイーン対象のball_mcを配置。その上でフレームに下記スクリプトを記述。
//Tweenerクラスを読み込み
import caurina.transitions.Tweener;

btn_mc.onRelease = function():Void{
    //ball_mcの_x座標を100に変更。所要時間は1秒間。
    Tweener.addTween(ball_mc, {_x:100, time:1});
};

とりあえずAS2版で色々実験。まずは基本であるaddTween()メソッドのテスト。

ステージ上にボタン用のbtn_mcとトゥイーン対象のball_mcを配置。その上でフレームに下記スクリプトを記述。

一行目のimport文はTweenerクラスにアクセスするために必要な記述。面倒くさいようだけど、Tweenerのメソッドなどを使うフレームの中では必ず一度記述する必要があります。同じタイムラインであっても、例えば1フレーム目でこのimport文を記述したとして、10フレーム目でまたTweenerを使う際にはまた同じimport文を書かなければなりません(AS3だったら、同じタイムラインの中なら、一度アクセスするだけですむかも?)。

できあがった結果は下記の通り。

Tweener事始め:インストール

Tweener自体は特に何もインストールする必要はありません。そうかと言って、関連ファイルをどこぞのフォルダにダウンロード&解凍しただけで使えるようになるものでもないです。じゃあどうすればいいのかと言うと、いくつか方法があるんですが、一番単純なのが、解凍して出てくる「caurina」フォルダを作業中のflaファイルと同じ階層に配置すること。



毎回毎回caurinaフォルダを配置するのが面倒だとか、flaファイルが複数あってフォルダに分けて管理してるだとかの場合は、個々のflaファイルやFlash自体にグローバルクラスパスを設定してあげればいけそうな気がしますが、さっきちょっとやってみてうまくいかなかったので、とりあえず後回しにします。

まずはスタンダードに「flaファイルと同階層にcaurinaフォルダを配置する」やり方で進めます。

Tweener事始め:ダウンロード

Tweenerを使ってみよう、と思い立ったので、備忘録も兼ねてブログにメモ。

まずは肝心のダウンロード&インストール。Tweenerは現在Google Codeで公開されています。公式サイトはこちら↓

tweener - Google Code

でもって、安定版(the latest stable(heavily tested) version)のダウンロードページはこちら↓

Downloads - tweener - Google Code

本記事の投稿時点での安定版最新バージョンは1.31.74だそうな。

上記ダウンロードページでダウンロードできるものは色々あって、最初どれをダウンロードしたものかと迷ってしまったんですが、おおまかにこんな感じでしょうか↓


tweener_0_2_vvvv.zip

「wwの代替バージョン」?何のことだかよく分かりません。

tweener_doc_en-us_1008.zip(※)

Tweenerのドキュメントですね。現在併行して自分用に和訳中。

TransitionCheatSheets_2.zip(※)

Tweenerのトランジションの一覧表。

tweener_1_31_74_as2_fl7.zip

AS2版はAS2版でも、FlashPlayer7/FlashLite2対応版ってことでしょうね。

tweener_1_31_74_as2.zip (※)

AS2版。FlashPlayer8対応版。

tweener_1_31_74_as3.zip (※)

AS3版。

tweener_1_31_74_as3_swc.zip

AS3版で、「SWCファイル」になってるそうです。が、ワタクシはまだSWCファイルを使ったことが無いので、よくわかりません・・・。

tweener_highlight_1_24_47.mxp(※)

Flashの拡張機能ですね。これをインストールすれば、Flash上でTweenerのコードがハイライトされたりコードヒントが出たりする、ってことでしょうか・・・。
うちではAS2での開発がまだ主流ですが、AS3の案件も増えてきそうなので、AS2版とAS3版、あとドキュメント系と拡張をダウンロードしてみます(※のついたものをダウンロードしてみます)。

ダウンロードはここまで。次はインストール、というか導入の準備ですね。

2009年4月3日金曜日

なんだかわからないけど凄いFlashサイト

なんだかわからないけど凄いFlashサイトを見つけました。

Synchronous Objects

「凄い」のは、動画の下のタイムラインの部分の複雑さや、動画中のダンサーのモーションに合わせて動線(?)が表示される点。「なんだかわからない」のは、操作方法やタイムライン上の要素の意味、そして、ダンサーのモーション動線がリアルタイムに動画の内容から生成されてるとしたら、それがどのように実現されているか、という点。

2009年3月23日月曜日

リモートデスクトップ接続の設定でよく見落としてた点


Windowsファイアウォールの設定画面、「例外」タブの中で、「リモートデスクトップ」にチェックが入っていても、「ファイルとプリンタの共有」にチェックが入ってないと、リモートデスクトップ接続できないんだった。それをすっかり忘れてました。ので、備忘録兼ねてメモ。

2009年3月17日火曜日

dl,dt,dd

htmlの定義リスト(dl)について。今までdtとddは一対一でなければならないのかと思ってたんだけど、どうやら違うんですね。下記のような書き方も良いんだとか。

<dl>
     <dt>2009.01.01</dt>
     <dd>新製品リリース!</dd>
     <dt>2009.01.05</dt>
     <dd>期間限定キャンペーン開始</dd>
     <dd>役員交代のお知らせ</dd>
</dl>

メモメモ。

2009年3月4日水曜日

最近Firefoxが妙に重くなったなと感じているあなたに

[Mac]最近Firefoxが妙に重くなったなと感じているあなたm9(´Д`)の為のTips - ジャポニウム βlog

この記事の中で為になったのは「番外編」の一つ前にある症状と対策。

症状
 否々そうじゃなくてさ、Firefox3導入当初は軽かった筈なんだよ、アドオンも足を引っ張る様なもん入れてないし、何て言ったらいいか起動して使いだしてからとか短期的?症状じゃなくて、導入以来の長期的使用に於ける鈍化を治したいんだよね。
 ってか起動も滅茶滅茶遅くなってね?
対策
 Firefoxを終了した状態で、ユーザライブラリのキャッシュからurlclassifier3.sqliteをゴミ箱に入れ削除する。
 キャッシュファイル保存先の一般例:Macintosh HD/ユーザ/(ユーザ名)/ライブラリ/Caches/Firefox/Profiles/(不規則文字列).default/urlclassifier3.sqlite
 起動が速くなります!
 Gmail等のWebアプリも速くなります!

これはやったことないな、と思ったので、早速試してみたところ、確かに起動が早くなった!Windows環境なので上記ファイルの場所は

C:\Documents and Settings\(ユーザ名)\Application Data\Mozilla\Firefox\Profiles\(不規則文字列).default\urlclassifier3.sqlite

これはいいかも。

Adobe Developer Box

4000ページ以上の資料を横断検索!アドビ開発者必須ツール

このデスクトップガジェット、ちょっと魅力かも。メモメモ。

2009年3月2日月曜日

ウイルスバスター+リモートデスクトップ接続

以前にもウイルスバスター環境のPC(Windows XP)にリモートデスクトップ接続しようとしてはじかれたことがあって、「あれ、どうやって回避したっけなあ?」ってことがあったので、メモ。

断片化ってそういうことだったの+ウィルスバスターのパフォーマンス改善

ひどい断片化にはデフラグを。でもこの断片化は…。 : パソコントラブル出張修理・サポート日記


断片化っておおよその理解はしていたつもりで、デフラグなんかも気がついたときにはするようにしてたけど、分析レポートとかちゃんと読んだことなかったし、2MBのファイルが3,929個とかにまで断片化してる、ってことがあるのを初めて知った。改めて自分のPCの分析レポートかけてみると、確かに2,000以上に断片化してるファイルを発見。ああ、こりゃデフラグせんと・・・、ということで、早速現在Auslogics Disk Defragを使ってデフラグ中。

さらに後半の「おまけ」にあった「ウイルス対策ソフトを停止せずにパフォーマンスを改善する方法」ってやつも興味深い。ということでこちらも早速設定して再起動!・・・してみたけど、今のところ体感できるほどのパフォーマンスの改善には繋がらず。まあしばらく様子を見ます。

2009年3月1日日曜日

Gmailからのメールの不達

Gmailからのメール受信 - XREA&CORE SUPPORT BOARD

数日前まで普通にやりとりしてたクライアントさんへのメールが、急に不達で戻ってくるようになった。エラーの内容が

552 sorry, your domain isn't in my list of allowed senderhosts (#5.7.1) (state 13).

だったので、まさかGmailのドメイン自体が先方のサーバーからはじかれるようになったのか?と思って調べたところ出てきたのが上記ページ。先方がXAREAを使ってるかどうかはわからないけど、これは何とかならないもんかなあ・・・。

追記:同様の事象を取り扱ったページを発見↓

GmailとCORESERVERと我々。|linker journal|linker

「上記のフォーラムによるとどうにも解決策が無さそう?な気がする」とのことで、ううむ、困りましたね・・・。

2009年2月27日金曜日

ウェブチャット

サイト訪問者に話し掛けられる「ウェブチャット」 - ITmedia News

以前、DellのサイトだかHPのサイトだかを見ていたときに、その場でカスタマーサポートの人とチャットが出来る機能というのがついてて驚いた。試しに使ってみたら、自動応答ではなく、実際に人が入力して応答してくれたので、こういうサービスもあるものだと思っていたんだけど、この「ウェブチャット」というのも同じようなものらしい。なんか使い道、ありそうですね。

2009年2月26日木曜日

Firefoxで複数プロファイルを同時に起動

Firefoxを複数プロファイルで使い分ける | Tech de Go
2つの仕様の異なるFirefoxは、同時に起動することは出来ない。かと思ったら、同時起動可能だった(Firefox2以上)。

おお、知らなかった!そんなことできたんですね。デバッグ作業がはかどりそうです。