AS3S.ORG

ACTIONSCRIPT 3.0 SOURCES

Archive for the ‘misc.’ Category

GoogleとYahoo!がFlash検索を改善

AdobeがFlashの検索インデックス化技術をGoogleとYahoo!に提供することでFlashコンテンツが検索されやすくなるそうです。
具体的な技術は明らかにされていませんがWebmaster Central blogのQ&Aから気になる点をまとめると、

Q: What about non-textual content, such as images?
At present, we are only discovering and indexing textual content in Flash files.
Also note that we do not index FLV files, such as the videos that play on YouTube, because these files contain no text elements.

インデックスされるのはSWF内のテキスト情報のみ。
画像やFLVファイルはインデックスされない。

Q: What are the current technical limitations of Google’s ability to index Flash?
1. Googlebot does not execute some types of JavaScript. So if your web page loads a Flash file via JavaScript, Google may not be aware of that Flash file, in which case it will not be indexed.

JavaScriptでSWFをロードしているとインデックスされない場合あり。

2. We currently do not attach content from external resources that are loaded by your Flash files. If your Flash file loads an HTML file, an XML file, another SWF file, etc., Google will separately index that resource, but it will not yet be considered to be part of the content in your Flash file.

外部ファイルは個別にインデックスされるが、元のSWFファイルの一部とはみなされない。

とのこと。
まだ開発中とのことですが、逆にJavaScriptや外部ファイルに中途半端に対応されるよりも、HTMLにはインデックスされたいコンテンツを記述して、SWFObjectなどJavaScriptでSWFコンテンツに置き換えられる方がありがたい気もしますが。。。

Written by admin

July 1st, 2008 at 10:48 pm

Posted in misc.

getter/setterを利用してイベントリスナーを動的に切り替える

AS2では

Mouse.addListener(this);

とすることで、MouseDown時に、this.onMouseDownメソッドが呼ばれるようになります。

function onMouseDown() {
    trace("default");
}
function test() {
    trace("test");
}
Mouse.addListener(this);
this.onMouseDown = test;

などとすることで、addListenerした後でもonMouseDownメソッドを動的に切り替えることができます。

AS3で採用されたイベントモデルでは、addEventLisntener時にイベントリスナーの参照を引数として指定するようになり、また、ほかのモダンな言語と同様、参照渡し(call by reference)ができないため、以下のようなコードではAS2に相当する動的なリスナーの切り替えができません。

function onMouseDown(event:MouseEvent):void {
    trace("default");
}
function test(event:MouseEvent):void {
    trace("test");
}
stage.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
onMouseDown = test; //意味なし

上記の例では、addEventListenerで渡されるのは、その時点でのonMouseDownの値なので、その後にonMouseDownの値を変えても意味がありません。
【参考】AS3では関数の引数はすべて値渡し(call by value)である

そこで、下記のようにgetter/setterメソッドを利用することで同じような動作が実現できます。
この例では、最初のMouseDownと2回目以降のMouseDownで呼ばれるリスナー関数が切り替わります。

Read the rest of this entry »

Written by admin

February 11th, 2008 at 11:10 pm

Posted in misc.

AS3で陥りがちなメモリーリーク

AS3ではガベージコレクションによるメモリ管理が導入されています。
ガベージコレクションとは、簡単に言えば「どこからも参照されなくなったオブジェクトがころあいを見計らって勝手にメモリから消去される」仕組みです。
この「どこからも参照されなくなった」という条件がクセモノで、気をつけないとすぐにメモリーリークの原因になります。

Read the rest of this entry »

Written by admin

January 26th, 2008 at 10:51 am

Posted in misc.

メソッドクロージャとバインドメソッド

「メソッドクロージャ」という用語の使われ方が混乱しているようなので詳しく調べてみました。

Read the rest of this entry »

Written by admin

January 24th, 2008 at 5:02 pm

Posted in misc.

イベントリスナーの引数のデフォルト値をnullにする

AS3で採用されたイベントモデルでは、イベントリスナーの引数として必ずEventクラス(またはそのサブクラス)のオブジェクトが渡されますが、場面によっては、イベントで呼び出されるメソッドを直接呼び出したい場合があります。

そのような場合は、引数となるEventオブジェクトのデフォルト値をnullにしておくと便利です。
下の例では、testメソッドを直接実行したり、Timerを使って1秒後に呼び出したりしています。

Read the rest of this entry »

Written by admin

January 22nd, 2008 at 10:11 pm

Posted in misc.

H.264/HE-AAC support in Flash Player 9

Flash Playerが次期アップデートでiPodや次世代DVDなどで採用されているH.264コーデックに対応するようです。

Adobe Labs: Flash Player
Flash Player 9 の H.264/HE-AAC サポートについて

FLVファイルだけでなく一般的なMPEG-4ファイルもそのまま再生可能。AIRアプリケーションでも利用可能。エンコーダはPlayerのリリースに合わせてアップデート予定とのこと。

Adobeさん、最近ツボをおさえたアップデートをしてきますね。

Written by admin

August 23rd, 2007 at 2:24 am

Posted in misc.

Adobe AIR update for Flash CS3 Professional

Flash CS3からAIRアプリケーションを作成できるアップデートがAdobe Labsに公開されました。
日本語版も公開されています。

Adobe AIR update for Flash CS3 Professional

早速インストールしてみました。

Read the rest of this entry »

Written by admin

August 21st, 2007 at 12:58 pm

Posted in misc.