« FlashDevelop3 beta9 で Shader クラスのコードヒントを表示する | メイン | 3 次ベジェ曲線を curveTo() を使って描く »
2008年10月17日
[as3] Player のバージョンによって Array と Vector を使い分ける
FlashPlayer の 10 が正式リリースされたけども
今のところ、一番厄介なのは、おそらく Vector クラスの使用じゃないかと思うわけです。
バージョン 9 でも AS3 は使っているわけですが、9 には Vector クラスは対応していないので、 10 対応で作成したクラスを 9 でも使用したくなったときに、Vector クラスはかなりネックになってしまうんじゃないかと思うわけです。
クライアントから古いバージョンを指定されることはよくあることだと思います。
で、こんな風にすると、一応 Vector と Array をプレイヤーの状況によって使い分けれるんじゃないかなあ と、思ってみたわけです。
これだと、FlashPlayer のバージョンが 9 の場合は
ただ、これだと変数の型指定は Object になっちゃうので、
実際どれほどの効果があるのかは謎です。
誰か検証してくれないかなあ。
今のところ、一番厄介なのは、おそらく Vector クラスの使用じゃないかと思うわけです。
バージョン 9 でも AS3 は使っているわけですが、9 には Vector クラスは対応していないので、 10 対応で作成したクラスを 9 でも使用したくなったときに、Vector クラスはかなりネックになってしまうんじゃないかと思うわけです。
クライアントから古いバージョンを指定されることはよくあることだと思います。
で、こんな風にすると、一応 Vector と Array をプレイヤーの状況によって使い分けれるんじゃないかなあ と、思ってみたわけです。
function getArrayOrVector(T:Class):Class
{
var theClass:Class;
try
{
var classPath:String = getQualifiedClassName(T);
classPath = classPath.replace("::", ".");
theClass = getDefinitionByName
("Vector.<" + classPath + ">") as Class;
}
catch (error:Error)
{
theClass = Array;
}
return theClass;
}
var theClass:Class = getArrayOrVector(int);
var a:Object = new theClass();
trace(getQualifiedClassName(a));
これだと、FlashPlayer のバージョンが 9 の場合は
Arrayと出力され、バージョンが 10 だと
__AS3__.vec::Vector.<int>と出力されます。
ただ、これだと変数の型指定は Object になっちゃうので、
実際どれほどの効果があるのかは謎です。
誰か検証してくれないかなあ。
トラックバック(0)
このブログ記事を参照しているブログ一覧: Player のバージョンによって Array と Vector を使い分ける
このブログ記事に対するトラックバックURL: http://system.seyself.com/mt-tb.cgi/517

コメントする