February 12, 2008

壁紙グランプリ

flashで壁紙を作ってる人に朗報だす。

待ち受けデザインコンテストが開催されるらしい。一応、flash lite1.1なので内容は限られているから、その中でどんなアイディア作品が出てくるのかが、見所かも。
ちなみに賞金もあるらしい。。。

他に携帯サイトデザインコンテストもあるらしい。けど、どっちかといえば、待ち受けの方が好きなのでこっちを載せておこぅ。

http://contest.klab.org/matiuke/

Categories: flash, lite1.1 — @ 3:00 am
November 9, 2007

CONNECT, DISCOVER, INSPIRE

10月某日
一通のパッケージが職場のデスクに置いてあった。

Adobeからのプレゼント

Adobe Max
Adobe Max

始めてのedyカード。
これは便利そう。

11月1日 朝9時半、青いパスを首から下げてお台場へ。
開始は10時からのものの、多くの人々が既に会場へ集まっていた。
レジストレーションは簡単。
カードを「ピッ」
で終わり。とてもいいではないですか!カードの中には自分の情報、自分の一日のスケジュール、等が入っている。これは便利!

Adobe MAX 2007

簡単に言えばAdobeが現在、近未来にリリースされる技術をデベロッパーへシェアをするイベントだ。今回の主な話は:AIR、AS3、FLASHLITEだろう。特にAIRについてのセミナーは多かった。
個人的にはAIRやAS3に興味はあったが、仕事上最も利用するモバイルを主に参加しました。
その中でFL3が自分としては一番気になってました。

全てを書ききる事はとても長くなってしまう為、書く事はできないのですが、
ポイントで色々をまとめると:

・Astro、3Dまた多くのフィルター機能を採用
・Flash Lite 3.0でライブ映像のストリーミング
・Visual Communicatorは面白そう
・簡単にダイナミック インターフェースが作れるThermoの紹介
・ネットで使えるPhotoshop Expressの紹介
・Image Foundation Toolkitで簡単に画像を拡大、縮小
・ドコモはFLashで携帯コンテンツを作成して欲しいらしい
・Shareで同じファイルを共用
・約270種の携帯電話にFlash Lite搭載
・94%のimodeユーザーの携帯電話にはFlash Liteを搭載
・現在ネット上70%のビデオはFlash形式

その他色々。

来年も行きたい。

Categories: flash, lite1.1, ウェブ, テクノロジー, モバイル — @ 4:56 pm

モバイルゲームを作成するにあたり、7つのパネルをかぶらずランダムに表示させる
方法を考えねばならなかったのだけれども、どうやらActionScript1には配列の概念が
ないらしく、ランダム関数はあるもののランダムに一つずつ表示させる方法が少々困難
になる。

ここで一つその方法を紹介すると


/:number1 = 1;
/:number2 = 2;
/:number3 = 3;
/:number4 = 4;

/:random1 = random(4)+1;
/:random2 = random(4)+1;
/:w = eval("/:number" add /:random1);
set("/:number" add /:random1, eval("/:number" add /:random2));
set("/:number" add /:random2, /:w);
for (i=1; i<=4; i++)
{
   /:test = eval("/:number" add i);
   trace("/:number" add i add " = " add /:test);
}

この式のとおり疑似配列を用いることでランダムな4つの数値を一つずつ取り出す事が可能になる。
しかしこの式よりも多い配列、15以上のものを瞬時に出すとなるとモバイルの計算の悪さ
なのか、この式が無理矢理すぎるのか正確なランダム数値というよりかは多少似たり寄ったり
になってしまう。

そこでもう一つ疑似配列を使ってあげ、2回ほどこの作業を繰り返せばりっぱな数値が取り出せるはずです。

こんな感じで。


/:tsetNumber1 = 1;
/:testNumber2 = 2;
/:testNumber3 = 3;
/:testNumber4 = 4;

/:random1 = random(4)+1;
/:random2 = random(4)+1;
/:w = eval("/:testNumber" add /:random1);
set("/:testNumber" add /:random1, eval("/:testNumber" add /:random2));
set("/:testNumber" add /:random2, /:w);
for (i=1; i<=4; i++)
{
   /:test1 = eval("/:testNumber" add i);
      trace("/:testNumber" add i add " = " add /:test1);
}

/:number1 = testNumber1;
/:number2 = testNumber2;
/:number3 = testNumber3;
/:number4 = testNumber4;

/:random3 = random(4)+1;
/:random4 = random(4)+1;
/:z = eval("/:number" add /:random3);
set("/:number" add /:random3, eval("/:number" add /:random4));
set("/:number" add /:random4, /:z);
for (i=1; i<=4; i++)
{
   /:test2 = eval("/:number" add i);
   trace("/:number" add i add " = " add /:test2);
}

ほかにもスマートなランダムに配列を作成する方法がありそうです。いや、なさそうです。
もしありましたら教えてくださいませ。

Categories: lite1.1, モバイル — @ 2:47 pm

えっと、今回は前回よりも更にマニアックなお話を。

ActionScript for Flash lite1.1 (以下ASlite1)についてです。

ASlite1は基本的にFlash4で導入されたスクリプト言語に若干の機能を加えた物から構成されています(Flash4の時点ではActionScriptという名称は存在していなかったのですが、今回は便宜的にAS0.1という呼称を用いましょう)

さて、このAS0.1、現行のASとはかなり勝手が違います。AS1→2→3という流れは、まぁ同じ言語が高度化して難しくなっただけですが、AS0.1は全く別の言語だったと言っても差し支えないでしょう。足りない機能も多々ありますが、スクリプトを記述する上での大きな違いは以下の3点

・tellTarget()を使う
・function()じゃなくてcall()
・スラッシュシンタックス

そして、今回、僕が語りたいのは3つめ、スラッシュシンタックスなのです。
「スラッシュシンタックスとは何ぞや?」という人のために簡単に説明しますと、AS1以降でルート上にあるmyObjの中のmyParamというパラメータを参照する際には

_root.myObj.myParam


と書くのですが(ドットで区切っていることからでドットシンタックスと呼びます)、AS0.1で使われていたスラッシュシンタックスで書くと

/:myObj/myParam


となるわけです。(ルートは ‘/:’ として表現されます。)一行だけなら読み取るのも問題ないのですが、大量にあると現行のドットシンタックスに慣れた身としてはかなりキツいですよね。

さて、ココからが重要なポイントです。AS0.1ではスラッシュシンタックスが必須なのでASlite1でも同様だと思い込んでいる人もいるのですが、実際はASlite1はオフィシャルにドットシンタックスもサポートしているのです。

ただし、ドットシンタックスもAS1以降と完全互換という訳ではないので少しだけ注意が必要です。
一言で表すのならば、tellTarget() またはダイナミックテキストで’_root’を参照したい場合は ‘_level0′に置き換えという暗黙のルールがあるのです。(loadMovieしている場合は_levelXの階層が変化します。)マニュアルには載っていませんがこの法則で、現状は問題なく開発できています。

例えば、
_rootからの絶対パスで記述する場合、タイムラインの上で
_root.myObj.myParam = 100;
と記述してプロパティにアクセスする分には問題ないのですが、

tellTarget('_root.myObj' {
	play();
}


とすると反応してくれません。この場合、正解は何故か

tellTarget('_level0.myObj') {
	play();
}


となります。また、ダイナミックテキストを使用している場合も同様に置き換えをしなければなりません。

少しややこしいですが、このルールさえ覚えておけば、あんな暗号のようなスラッシュシンタックスを書かなくても良いのでお勧めす。
(個人的にはtellTarget() や call() に関しては「機能が違うのだからそんなものだ」として受け入れられたのですが、スラッシュシンタックスだけは根本的に書き方が違うので無理なんです。)

Categories: flash, lite1.1 — @ 6:11 pm

company information

CyberMedia k.k.
Tech Hiroo Bldg 1F
Hiroo 1-10-5
Shibuya-ku, Tokyo
150-0012
tel +81(0)3-5423-5333
fax +81(0)3-5423-6654
email CyberMedia

Categories

cyber bloggers