profile

AS3: Resource Management pt 3

下の方に、

try { new LocalConnection().connect('foo'); new LocalConnection().connect('foo'); } catch (e:*) {} // the GC will perform a full mark/sweep on the second call.

って。今やってるプロジェクトで取り入れてみたけど、複雑すぎて効いてるのか効いてないのかわからん。暇になったら簡単なサンプル作って試してみよう。

System.totalMemoryで、メモリ使用量とかを追っているけど、IEのActiveX版とかだとそんなに増えずに適度にコントロールされてるけど、FirefoxのプラグインとかFlashからパブリッシュするバージョンだと、バンバン、メモリ使用量が増えていく。どうすりゃいいんだ・・
おれがどれだけ一生懸命 removeEventListenerとかしてるかと、小一時間・・・

カテゴリaction script,
trackback urlhttp://blog.tokyoace4.com/cgi-bin/mt/mt-tb.cgi/954
trackback0
comment0
2008.11.07

もう、なんで?というAS仕様に悩むこと2時間。

どうみてもロジックはあってるのに、ロジック通りの動作をしないという現象が起こって悩んでいたのです。次のような内容で。

1)


var myname:String = "tohsaki";

if(myname == "tohsaki")
{
  trace("tohsaki desu");
}else (myname == "yamada")
{
  trace("yamada desu");
}

実際にはこんなに単純ではないのだけど、まぁ要約するとこういうことでした。これを実行すると、
---
tohsaki desu
yamada desu
---
と両方のtrace文が実行されてしまいます。

頭の中で構築されているロジックではありえないことなんだけど、でも実際にそういう動作をしてしまうのです。困ったな~と思ってよくみたら、頭の中では「else if」のはずの「if」が抜けてるんです。
「else (myname == "yamada")」こんななってる。

文法としておかしいはずなのに、Flashのコンパイル通っちゃうんだよね。これ。

でさ、

2)


var myname:String = "tohsaki";

if(myname == "tohsaki"){
  trace("tohsaki desu");
}else (myname == "yamada"){
  trace("yamada desu");
}


こういうふうに「{」の位置が変わると、これはやっぱり、コンパイルエラーになるわけ。不思議だよね。
2)の動作が正しいんだけど、1)の書き方だと通っちゃう。

僕としては、もともとは2)のif文の書き方をするのだけど、FlashDevelopって1)に整形しちゃうんだよね。気持ち悪いし行数増えるから嫌いなんだけど、設定の変え方がわからないから放置しておいたら、こんな罠ですよ。だいぶ時間ロスした。


ちなみに、次みたいなのも昔よくやったんだけど、AS3になってから注意してくれるようになってありがたい。

3)


var myname:String = "tohsaki";

if(myname = "tohsaki"){
  trace("tohsaki desu");
}else if(myname == "yamada"){
  trace("yamada desu");
}

比較の「==」をタイポで「=」になってるってやつです。
これだと、「条件内の代入です。=ではなく==をですか?」という片言の日本語で注意してくれます。
ありがたいありがたい。


そんなわけでした。
みなさんもご注意を。

カテゴリaction script,
trackback urlhttp://blog.tokyoace4.com/cgi-bin/mt/mt-tb.cgi/946
trackback0
comment3

AS3になってから、識別子がClassで代用することになって、不便すぎねと思っていたが、ちゃんと対策が用意されてた。

import flash.utils.getDefinitionByName;

var classRef:Class = getDefinitionByName("MouseOverSound") as Class;

var instance = new classRef();

こんな感じでクラスのレファレンスを得て、インスタンス化するまで可能だった。
そりゃそうだよな。できないと、困りすぎる。

でも、getDefinitionByNameとか他の人は、どういう動機で見つけるんだろう。APIひたすら読むのかな。

@禁煙13日目

カテゴリaction script,
tagas3
trackback urlhttp://blog.tokyoace4.com/cgi-bin/mt/mt-tb.cgi/936
trackback0
comment0

ちょこっとしたサイトの案件を、いまさらながら、はじめてAS3でやるぞと思いついたはいいが、FMSサーバーと全く通信ができないという事態に直面し、一日がたった。

すごいヘルプを読みこんでたらようやく、


・AMF3 をサポートするサーバー (たとえば、Flex Data Services 2 または Flash Media Server 3) に接続します。defaultObjectEncoding のデフォルト値は ObjectEncoding.AMF3 です。この SWF ファイルに作成されるすべての NetConnection インスタンスでは、AMF3 直列化を使用します。使用する AMF エンコーディングを Flash Player に通知する必要はありません。

・AMF3 をサポートしないサーバー (たとえば、Flash Media Server 2) に接続します。このシナリオでは、静的な NetConnection.defaultObjectEncoding プロパティを ObjectEncoding.AMF0 に設定します。この SWF ファイルに作成されるすべての NetConnection インスタンスでは、AMF0 直列化を使用します。objectEncoding プロパティを設定する必要はありません。

・異なるエンコーディングバージョンを使用する複数のサーバーに接続する場合。defaultObjectEncoding を使用せずに、各接続の objectEncoding プロパティを使用して、接続ごとにオブジェクトエンコーディングを設定します。このプロパティを ObjectEncoding.AMF0 に設定すると、AMF0 エンコーディングを使用するサーバー (、Flash Media Server 2 など) に接続します。ObjectEncoding.AMF3 に設定すると、AMF3 エンコーディングを使用するサーバー (Flex Data Services 2 など) に接続します。

という文章を見つけた。
それだけで解決する問題だった。あぁ。

ちなみにNetStreamもSharedObjectも同様の設定あり。

カテゴリaction script,
trackback urlhttp://blog.tokyoace4.com/cgi-bin/mt/mt-tb.cgi/924
trackback0
comment0
2006.11.24

Google Earth 日本測地系と世界測地系

というサイトがあった。
まだちゃんと見てないけど、こういう知識には疎いのであとで読んでみよう。
GoogleMapの座標データ換算はこういうの関係してそう。

駅の座標データってどっかで公開されてないかなー。
有償だったら、こんなのがでてきたが。高そうだ。

カテゴリaction script,
trackback urlhttp://blog.tokyoace4.com/cgi-bin/mt/mt-tb.cgi/726
trackback0
comment4
2006.11.16

仕事上、必要にかられてFlashでGoogleMap使うべく解析中。

とりあえず、

GoogleMapでは、指定された座標に対して地図を返すわけですが、
地図自体は、
http://mt0.google.com/mt?n=404&v=ap.31&x=29096&y=12912&zoom=2
な感じのURLの200px四方ぐらいの画像をいっぱいもってきますと。

最初のサブドメインのmt0やらmt1やらは単に負荷分散のようで、どれでも同じ画像が帰ってくる。
で、n=404とかv=ap.31は不明。x,yが位置情報。緯度経度をどうにかしていると思われるがいまのところ不明。

ちなみに、今回のだと不要だが、航空写真だと
http://kh0.google.com/kh?n=404&v=11&cookie=fzwq2uaRrD_pu_whh1IkcaHnvUVeryaiXU52mQ&t=trssqqtrrtstrqsq
な感じ。

で、このURLを導くのを
http://maps.google.com/mapfiles/maps2.66.api.js
つーのがやってるのかなーと思って、JsDecorderとかして解析に挑戦するもの、
こんなのわかるかーーーーと。
this.Xnとかthis.nAとか知るかーーーーと。
GMap2クラス近辺らしきクラスをチェックしたが、どうもここのスクリプトの中で上のようなURLに変換しているわけではないっぽい。AJAXでサーバーかなー。

あー、わかんね。

と、思ったけど、どうもGLatLngというクラスがっぽいなぁ。propertyのx,yが上の地図のに該当するかしら。。と
思ったけど、全然違うっぽい


カテゴリaction script,
trackback urlhttp://blog.tokyoace4.com/cgi-bin/mt/mt-tb.cgi/724
trackback0
comment0

なんとなくできた。。

ムラサキの丸をドラッグで変形。




なぜかX方向とY方向の分割数が同じじゃないとうまくいかない。計算上問題ないはずだと思うのだけど・・・
上のサンプルは4分割。いっぱい伸ばすと境界に黒い線が見える。最終的には外部のJPGを読み込んでからそれを変形させることになるので、BitmapDataを使ってる。なんでFlash8のみ。
4分割にわけた長方形をさらに対角線で割るので、一枚の画像に対して8つマスクをかけたMCで構成することになる。3x3で分割した場合は18枚。パフォーマンス的にどうなるか・・
それにしても力技だなぁ。

カテゴリaction script,
comment0

Flash8でMovieClip(BitmapImage)を

rect.gif

のような任意の4点で指定される形に変形することってできないのかな?
いろいろやってみてるけど、どうもわからない。
平行四辺形の形を保ったままなら、任意の4点の図形に変換できるのだが。こういうパース感を出すのがうまくできない。DisplacementMapFilterとかうまく使えばいけんのかなとか思ったけど、
基本的にうねーうねーっとした雰囲気になってしまうし。
普通に3D空間にパースをつけた画像を浮かべるような感じにしたいだけなんだけどなー。
Matrixもいいけど、DirectorみたいにBoundsの四隅の座標を指定できちゃうと何かと便利だと思うのだが。。Matrixだと平行四辺形にしかならん気がする。わからん。もともとこういうのよくわからんし。


誰かHELP

(ご協力のおかげでなんとなくできました。)

カテゴリaction script,
comment2
2006.04.10

今までFlashのデフォルトのツールでがしがし書いてたけど、今回SE|PYというActionScript Editorを導入してみた。
なかなか便利。

SE|PY
MTASC

関数やブロックの折りたたみとかできて、なかなか便利。
自分の定義したクラスとかのプリパティとかもAutoCompleteしてくれるし、Visual Studio
で仕事してるみたいでいい。
ただ、AutoFormatすると、
return {hoge : 1, cnt:2};
みたいなことをしていると、
return
{hoge : 1, cnt:2};

こんなんにかってにされてしまってエラーになる。一回はまった。AutoFormatのフォーマット指定は自分でできるようにしてほしいなー。

あと、TortoiseSVNとも連動ができるっぽいけど、とりあえずまだ未研究。。


あと、MTASCというコンパイラも入れてみたけどこれはどう使うのかまだよくわかってない。

カテゴリaction script,
trackback urlhttp://blog.tokyoace4.com/cgi-bin/mt/mt-tb.cgi/654
trackback0
comment0
2006.03.21

Flash Media ServerでRegExpを使いたいーとか思って、AS2用のRegExpクラスをちまちまとAS1に変換、というかECMA-262ベースに変換しようとちまちま書き直そうかと思いながらごにょごにょしてたら、FMSでのスクリプトはそもそも、ECMA-262なので、RegExpクラスが標準で組み込まれているということに気がついた。

うへへ。。

カテゴリaction script,
trackback urlhttp://blog.tokyoace4.com/cgi-bin/mt/mt-tb.cgi/646
trackback0
comment0

前エントリーから続き

イメソの花井さんがすばらしい答えをくれたので、まとめ。

正円上の点c1からc2にいきたいとき。
それぞれのrは正円の中心を原点として、X軸の+の方向が0度のときの角度。

var s = Math.sin((this.c2.r-this.c1.r)*Math.PI/180);
var direction = s/Math.abs(s);

↓(修正)

var direction = ( Math.sin((this.c2.r - this.c1.r) * Math.PI / 180) > 0 ) ? 1 : -1;

(FladdictさんのBlogのコメントされてたかたからの指摘で、最終的にこれがBEST
ということになりました。)


ということで解決!

で、さらに、トラックバックをくれたFladdictさんにちょっとはしょってコメントしてしまったことの補足。

続きを読む
カテゴリaction script,
trackback urlhttp://blog.tokyoace4.com/cgi-bin/mt/mt-tb.cgi/622
trackback0
comment0

うーむ。
意外とスマートな解決方法が思いつかないのだが、なにかいい方法あるのだろうか。

同じ正円周上にある2点(p1とp2)でp1からp2に正円上を最短距離で進みたいときに、角度を+していけばいいのかーしていけばいいのかというのをできるだけ簡潔に求めたい。

考えているのだけど、いまいち思い浮かばない。さらっと数学的に実は解法がありそうな気がするけど、知らないだけなのか。。普通にやると、if文だらけになってしまう。

続きを読む
カテゴリaction script,
trackback urlhttp://blog.tokyoace4.com/cgi-bin/mt/mt-tb.cgi/621
trackback1
comment2

ActionScriptで一定の範囲の値しかとらない変数とかがnativeで実装されてたら何かと便利じゃね?

var h = new LimitedInteger(2,10)

とか。

try{
h = hogehoge*2;
}catch(e){
trace("hoge");
}

みたいな感じで例外を返す。例外をだしても実行はされ範囲外の値が入ったときはそれぞれの向きの上限の値を返す。で調べてたらAS2でもtry文が実装されてた(知らんかった・・FlashCommunicationServerで使えたのはしってたけど・・・)。でやろうかなーと思ったけど、自分で作ったクラスのインスタンスに対して、

h = hogehoge;

みたいに代入を実現するにはどうすればいいのだろう?

カテゴリaction script,
trackback urlhttp://blog.tokyoace4.com/cgi-bin/mt/mt-tb.cgi/607
trackback1
comment5

前からFlashでのRIA的なもの(AJAXもそうだが)とかを開発するのに、サーバーへのリクエストとそれをチェックするのに、プロクシーサーバー的に間に挟まってログをだしてくれるようなソフトがないかなーと思っていたんだけど、あった。

横取り丸
iNetSpy

新しいVAIOノートに、秀丸の強調表示ファイルをインストールしようと思って秀丸のサイトみてたらあった。さすが、秀まるお。

これでいちいち重たいリモートデバッグ立ち上げたりとか、とかダミーのテキストフィールドにサーバーから返してるXMLとかださなくても、すんなりと開発できます。ソフトが古いせいか、UTF-8でやってるとiNetSpyのログ表示コンソールが化けるけど、とりあえずログをファイルに保存して秀丸で見ればちゃんと見れる。

* どうもちょっとコツがいるみたいだ。
まずIEを起動する前に、InetSpyが立ち上がってないと、キャプチャーしてくれないみたい。ほかにも細かい条件ありそうだけどなぁ。

カテゴリaction script,
trackback urlhttp://blog.tokyoace4.com/cgi-bin/mt/mt-tb.cgi/605
trackback0
comment3

RegExp class for Flash 5 / Flash MX
AS2クラスもある。

Javascriptでの正規表現

メモ。
けっこうちゃんとできるね。

カテゴリaction script,
trackback urlhttp://blog.tokyoace4.com/cgi-bin/mt/mt-tb.cgi/604
trackback0
comment0

今やっている仕事で、
Windows IEでダウンロードダイアログを表示させ、ファイルをダウンロードさせたり(キャンセルされても一緒だが)、した後に、ページ内のFlashで

getURL("javascript:hogehoge()");

が効かなくなるバグに遭遇した。FireFox、MacはOK。
おそらくWindowsXP,SP2のセキュリティ関係に抵触しているのだろう。

非常に困って、ダウンロードダイアログを出す経路を、ダミーフレームにしてみたり別ウインドウにしてみたりとかいろいろしたけれども、ことごとくダメだった。

で、
Flashでの呼び出し側を

fscommand("hoge","hoge")

のようにfscommand経由にして、fscommand関係のjavascriptを用意したら通るようになった。めでたしめでたし。
しかし、Macだとfscommandが通らないので、getURL("javascript:hoge()");とFlash内で環境判定をして使い分けないといけない。不便。でもFSCommand経由にすると、SP2になってからいろいろ問題あったjavascriptへの通りがとてもよくなることがわかった。

参考:FSCommand

カテゴリaction script,
trackback urlhttp://blog.tokyoace4.com/cgi-bin/mt/mt-tb.cgi/602
trackback0
comment0

Yahoo Maps
Yahoo MAPSが公開されたそうであるけれども、これFlashで実装されてます。
で、Flash中で地図をズームしたりすると、ブラウザのURL欄の値も変わりつつ、別にページをリロードするわけでもないんだけど、これってどうやってるんでしょう?

誰かおしえてくり。

カテゴリaction script,
trackback urlhttp://blog.tokyoace4.com/cgi-bin/mt/mt-tb.cgi/557
trackback1
comment7

FumioNonaka.com : 描画メソッドで円を描く

ふむ。メモメモ。

カテゴリaction script,
trackback urlhttp://blog.tokyoace4.com/cgi-bin/mt/mt-tb.cgi/539
trackback0
comment0

むきー
今やってる仕事で、マウスの軌跡を表現するのに、生生なデータだとぐにゅぐにょして気持ちわるいので、通過した点のポイントを抽出してベジェ曲線に置き換えて表現ということをやっている。ベジェ曲線は始点と終点とそれぞれのハンドルポイントで指定できるわけなのだが、どうも計算がごっついし、Flashで表現するためのMCも多目で負荷高めなので、もう少し簡単なアルゴリズムで、負荷コントロールがしやすくて、任意の4点を参照にした滑らかな曲線にならんかと、無限ループと戦いながら試行錯誤しているのだが、だいたいの場合はいいけど、なかなか理想的な形にならない。やってることは、birboidの応用なのだが・・
( birboidについてはikasuru.jpにソースがあったが、ただいまikasuru.jpはセフレを絶賛募集中のため、見れない)

bajie.jpg

ちなみに、昔作ったベジェのソース

これでも、4つのポイントはもっと細かくとるとはずなので、今回の件はこれで十分いけそうな気はするのだけど、もう少し完璧にしたいなぁ。

bajie2.jpg
ちなみにベジェ曲線の場合はこの緑色のラインのようになるので、全体的に角がなくなりすぎてる印象がある。特に×をつけたような、ジグザグなラインの場合、ポイントをトレースしているように見えるとは言いがたく、マウスのトレースを丸めたものとしては、だいぶ離れた線になってしまい、あまり好ましくない。
なんで、今トライしているやつで、角度がびしっと変わっているところがちょっと滑らかになればいいんだけど。


しかし、やってたら結構重そうになってきてしまった・・・
どうだろう。うーむ。

カテゴリaction script,
trackback urlhttp://blog.tokyoace4.com/cgi-bin/mt/mt-tb.cgi/530
trackback1
comment0

へんなものに気づいてしまった。

functionの宣言と呼び出しについて


-----------------------------------------
hogehoge();

function hogehoge(){
trace("hoge");
}
-----------------------------------------
としたとき、実行結果は、hoge
になるのだけど、

functionの宣言の別の書き方、
-----------------------------------------
hogehoge();

this.hogehoge = function(){
trace("hoge");
}
-----------------------------------------
をしたとき、このhogehoge()関数は呼び出すことができない。
実行結果としては、何もおこらない。
hogehoge()を関数宣言の後に入れればもちろんtrace文が実行される。

なんだ、これ??
いまさら気づいたけど・・・

カテゴリaction script,
trackback urlhttp://blog.tokyoace4.com/cgi-bin/mt/mt-tb.cgi/467
trackback0

TextFieldのHTML中にスクリプトを埋め込む

FlashでTextFieldに読み込ませるHTMLのAタグのリンクからFlashの関数を呼び出す方法。


< href='asfunction:funcA, abc'>クリック!</a>

知らなかった。がっくり。
_| ̄|○ 

カテゴリaction script,
trackback urlhttp://blog.tokyoace4.com/cgi-bin/mt/mt-tb.cgi/451
trackback0
2004.08.25

Flash team
Flashの開発チームによる日本語付きブロッグ。あんまり更新されないけど、きっと最新情報をどんどん出してくれると期待。

カテゴリaction script,
trackback urlhttp://blog.tokyoace4.com/cgi-bin/mt/mt-tb.cgi/418
trackback0
comment0

むぅ、FlashCommunicationServerと苦闘中。合成したmp3ファイルをFCSを使ってストリーミング再生したいのだけど、なんでこんなに途切れるのさ・・

setBufferTime()で10秒とか指定してみても、45秒ぐらいしたら途切れてしまう。おかしいよ。だって、ローカルにFCS立ててテストしてるのにさ。バッファもくそもねえじゃん。一瞬、personal editionで帯域幅が1.0Mbpsだからかとか思ったけど、80kbpsのmp3ファイルとじゃ桁が違うじゃん。むぅー。 何がいけないんだろう。ついでにsetBufferTime()にどのくらいの数字割り当てるかってユーザ環境によって違うよね・・
ムービーを再生するときは、別swfとかを読み込んで、最初の数秒で帯域幅を読み取ってムービーの尺とファイルサイズからバッファリング時間を計算しているが(プリウスのサイトとか)、同じことをやる必要があるんだろうか。

Sound.loadSound()とかでストリーミング再生させたほうがいいのだろうか。

カテゴリaction script,
trackback urlhttp://blog.tokyoace4.com/cgi-bin/mt/mt-tb.cgi/395
trackback0
comment1

自己レス。
FLASHのFPSを正常に

だけど、どうやら高速化ではなくフレームレートを保とうとするみたいだ。
ちょっと重めの処理をすると描画がコマ落ちする。Flashでコマ落ちっていうのも面白い現象だけど。
ふーん。

カテゴリaction script,
trackback urlhttp://blog.tokyoace4.com/cgi-bin/mt/mt-tb.cgi/393
trackback0
comment0
2004.07.06

http tunneling

ということが、Flash Communication Server MXからできるらしい。とりあえず手元のマシンで試しているが失敗する。でも返事はきてるみたいなんだけどね。なんでだろ。

ま、いいや。とりあえずメモ。

カテゴリaction script,
trackback urlhttp://blog.tokyoace4.com/cgi-bin/mt/mt-tb.cgi/392
trackback0
comment0
2004.06.02

購入

FLASH OOP
Flash OOP勉強会のメンバーが書いたFlashでのオブジェクト指向プログラミングの本。

JAVAでモーションプログラミング
ICC OnlineのスプラッシュのFlashの作者、古堅さんの本。すごい前に多摩美で行われた情報デザインのカンファレンスでお会いしたことあるけど、覚えてないだろうな。

DIRECTOR Xtraガイドブック
大重さん。今までにXtraの本ってなかった(と思う)だけにこれは有用そう。
Directorひさびさにいじるかと思って、アップグレードしたのにVisualBasic習得しててすっかり忘れてたよ。時間ができたらいじらないと。

カテゴリaction script,
trackback urlhttp://blog.tokyoace4.com/cgi-bin/mt/mt-tb.cgi/364
trackback0
comment0

Ozacc : FLASHのFPSを正常に経由、
Bazooka : FLASHのFPSを正常に行き。

IE6で10%ほど高速化されるとのこと。
まじですか。試してみた。15fpsのムービーで16frame目の経過秒数を計測。

非対応版:






対応版:







確かに高速化される。

カテゴリaction script,
trackback urlhttp://blog.tokyoace4.com/cgi-bin/mt/mt-tb.cgi/361
trackback0
comment0

メモ。
サーバー側でMp3ファイルの生成方法というかエンコーディングの方法。簡単そうだ。
The Linux MP3-HOWTO

で、それはいいとして、Wav はどうやって作るのって言うと、まだちゃんと見てないけど、
Audio::Wav
でできるんかいな。

カテゴリaction script,
trackback urlhttp://blog.tokyoace4.com/cgi-bin/mt/mt-tb.cgi/360
trackback0
comment1

メモ。
サーバー側でMp3ファイルの生成方法というかエンコーディングの方法。簡単そうだ。
The Linux MP3-HOWTO

で、それはいいとして、Wav はどうやって作るのって言うと、まだちゃんと見てないけど、
Audio::Wav
でできるんかいな。

カテゴリaction script,
trackback urlhttp://blog.tokyoace4.com/cgi-bin/mt/mt-tb.cgi/359
trackback0
comment0
2004.05.19

Flashのヘルプより


XMLSocket.onData()
ゼロバイトで終了する XML メッセージがサーバーからダウンロードされると、呼び出されます。

ああうう、普通に書いてあるから、ソケット送ってたら最後に0バイトがついてるのかと思っていたら、そういうわけではないらしい。だいたい、0バイトがついてるって意味がわからない。0バイトだったらついてようが、ついていまいが0バイトなわけで。色々と調べてたら、perlでFlashのXMLSocketのサーバーを書いている人がいてその人のソースだと要するにASCIIの0x00を送っていた。NULLを送れということらしい。しかしNullは0バイトではないだろ・・

VisualBasic.Netは普通のnullがないみたいで悩んだ。
ストリームにはByte配列でメッセージを送るので、Byte変換前のStringの最後にString.Emptyとかをつけてみても、やはり空は空なので、Byte変換時に消えてしまう。
結局、Byte配列を実際の文字列よりも大きく確保して、一番最後の要素にNothingを代入。そのByte配列を送るということでなんとかFlashが反応してくれた。

なんで0バイトって書いてあるんだろう。

カテゴリaction script,
trackback urlhttp://blog.tokyoace4.com/cgi-bin/mt/mt-tb.cgi/349
trackback0
comment1
2002.08.27

二重振り子の勉強をしていたのですが、
バグでちょっとおもしろいものになりました。
2,3分じっと見ていてください。
途中から、軌跡が消えなくなってちょっと綺麗です。

http://www.tokyoace4.com/diary/2002.08/dp-bug.swf

比較的、重力強めのもう少しちゃんとした動き、
http://www.tokyoace4.com/diary/2002.08/dp.swf

カテゴリaction script,
trackback urlhttp://blog.tokyoace4.com/cgi-bin/mt/mt-tb.cgi/106
trackback0
comment0