トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   ActionScript 3.0 特設会議室
     ActionScript3.0のすごいところって?
投稿するにはまず登録を

スレッド表示 | 古いものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
riikuni
Åê¹ÆNo.27810
投稿日時: 2006-8-10 21:52
新米
居住地:
投稿: 7
使用環境:
WinXP,Flash8,Flash9
Re: ActionScript3.0のすごいところって?
AS3.0 Flash9で固定小数演算をして気がついたのですが
足し算だとint型よりもNumber型のほうがおそいですが
掛け算だとint型よりもNumber型のほうが早いのですが
なぜなんでしょうか。


var t0 = getTimer();
var n:intまたはNumber;

for (var i:int; i < 1000000; i++) {
n = n*n;
}
t1 = getTimer() - t0;
trace(t1);

Athlon2600+ で
intで42
Numberで8でした
仕様といわれれば納得するしかありませんが・・・。
森 巧尚
Åê¹ÆNo.27381
投稿日時: 2006-7-27 22:05
モデレータ
居住地: 宝塚
投稿: 650
使用環境:
.5/CS4/Safari3
XP+2000//IE6
Re: ActionScript3.0のすごいところって?
シーン名のリストも、ラベル名のリストも、そのラベルのフレーム番号も、いろいろ取得できますね。
ムービーのところどころにラベルをつけて、「次のラベルにジャンプ」っていうのができそうです。

「ラベル名、シーン名を取得できる」


----------------
森 巧尚
http://www.ymori.com

Duke15
Åê¹ÆNo.27374
投稿日時: 2006-7-27 18:07
常連
居住地: 埼玉
投稿: 196
使用環境:
XPpro,2Kpro,
MX2004prov7.2
FlashPro8
Flash9Preview α
Player8r24
Player9.0.16
Player7r63
Firefox1.5.0.5
IE6,NB8.1en
Re: ActionScript3.0のすごいところって?
AS3.0ではタイムラインのラベル名が取得出来るのですね。
これは、今までのバージョンでは無かったので、
凄いというほどではないけれど、便利ですね。
currentLabels[].name
ということで、ラベル名で分岐など出来そうですね。


----------------
site:
http://www.yumenext.com/
blog:
http://star.ap.teacup.com/flash/

youich
Åê¹ÆNo.27143
投稿日時: 2006-7-21 4:05
職人
居住地: kobe
投稿: 349
使用環境:
Tiger
Re: ActionScript3.0のすごいところって?
引用:

Player9の中にはAS1/2用のAVM1とAS3用のAVM2が両方入ってます。
(だからこれまでのswfがみんなちゃんと動くわけですが・・)
ところが、描画処理とかサウンド処理とか、Flashで一番よく使って、重さに影響してくるような部分は同じエンジンを使ってるんですね。


だから、逆に計算処理は単純にして、描画処理ばっかりにするとそんなに速度差は出ないことになります。

へー、そうだったんですか知らなかった。合理的と言えば合理的ですね
でもそう聞くとみょーに親しみが湧いて来たりする(^^;

引用:


ということで、800x800のjpgを回転させるだけのプログラムを作って見ました。
軽くするためにbitmapDataを使って描画させているのですが、結果は2.0と3.0ではほとんど変わらなかったのです。

ActionScript2.0版
ActionScript3.0版(要Player 9)

さらに、ActionScriptなしで、モーショントゥイーンだけのバージョンを作ったのですが、なんとこれが一番高速だったのです!

あらら、なんと意外な
成る程、思い込みって言うやつは気をつけないと駄目ですね、
ありがとうございました。


----------------
- yo

Duke15
Åê¹ÆNo.27135
投稿日時: 2006-7-20 22:25
常連
居住地: 埼玉
投稿: 196
使用環境:
XPpro,2Kpro,
MX2004prov7.2
FlashPro8
Flash9Preview α
Player8r24
Player9.0.16
Player7r63
Firefox1.5.0.5
IE6,NB8.1en
Re: ActionScript3.0のすごいところって?
題目と少しズレるかも知れませんが、

AS3.0というか、Flash9 AS3.0 Preview アルファ版は
通常は30日トライアルですが、
このバージョンは、正式な製品が出るまで、使えるそうですね。
なので、結構、中身を知る上では、大いに使えるので
Flash8proお持ちの方はインストールしてみる価値はあると思いますよ。


----------------
site:
http://www.yumenext.com/
blog:
http://star.ap.teacup.com/flash/

森 巧尚
Åê¹ÆNo.27087
投稿日時: 2006-7-19 21:41
モデレータ
居住地: 宝塚
投稿: 650
使用環境:
.5/CS4/Safari3
XP+2000//IE6
Re: ActionScript3.0のすごいところって?
引用:

youichさんは書きました:
Player8、7ではASFunction2+ローカル変数を使うのと
使わないのではかなり違うと思います。

出力
9544
2611

おお。ローカル変数を使うとけっこう差が出ますね。

同じソースを使って、AS3で試してみました。
が、AS3ではあまり差はでませんでした。というか微妙というか・・

「Number」
57
65

「int」
33
28

引用:

それは言えると思うけど、VM2がAS3でしか走らない仕様だし。。。

Player9の中にはAS1/2用のAVM1とAS3用のAVM2が両方入ってます。
(だからこれまでのswfがみんなちゃんと動くわけですが・・)
ところが、描画処理とかサウンド処理とか、Flashで一番よく使って、重さに影響してくるような部分は同じエンジンを使ってるんですね。


だから、逆に計算処理は単純にして、描画処理ばっかりにするとそんなに速度差は出ないことになります。

ということで、800x800のjpgを回転させるだけのプログラムを作って見ました。
軽くするためにbitmapDataを使って描画させているのですが、結果は2.0と3.0ではほとんど変わらなかったのです。

ActionScript2.0版
ActionScript3.0版(要Player 9)

さらに、ActionScriptなしで、モーショントゥイーンだけのバージョンを作ったのですが、なんとこれが一番高速だったのです!

ActionScriptなし版

単純に「高速」という言葉だけを聞いて過信するのは要注意ですね。

ActionScript3.0が高速というのはあくまで「言語レベル」のことのようですね。


----------------
森 巧尚
http://www.ymori.com

youich
Åê¹ÆNo.27080
投稿日時: 2006-7-19 19:04
職人
居住地: kobe
投稿: 349
使用環境:
Tiger
Re: ActionScript3.0のすごいところって?
引用:

Fla4manさんは書きました:
なんかAS2の数字が異様に大きすぎると思うのですが

Flash5フォーマットで
forループ100万回で内部で変数に加算するという同様のものが

+=1 相当で800ms
n=n+1 相当で1sでした。
ちなみに結果はtraceを使わずにテキストフィールドへ出力しています。

そんな早いんですか?(^^
かは解らないですけどPlayer8、7ではASFunction2+ローカル変数を使うのと
使わないのではかなり違うと思います。Player6以降早くなったっていうのもそこが
おおきなポイントですよね。

var t0 = getTimer();
var n:Number = 1;
for (var i = 0; i<1000000; i++) {
	n += 1;
}
t1 = getTimer()-t0;
trace(t1);

//----------------------------------------

function foo() {
	var t = getTimer();
	var n = 1;
	for (var i = 0; i<1000000; i++) {
		n += 1;
	}
	trace(getTimer()-t);
}
foo();

出力
9544
2611

先の森さんのサンプルをローカル変数を使う様にすると
http://as-coders.nct.jp/yo/bm/
ぐらいまでいけるんじゃないかとおもうけど、でもやっぱり9とは全然差がありますね。
引用:

あとこれはAS2 とAS3という言語の問題ではなくて

マクロメディアVM1 V.S. アドビ VM2であり

それは言えると思うけど、VM2がAS3でしか走らない仕様だし。。。


----------------
- yo

Fla4man
Åê¹ÆNo.27074
投稿日時: 2006-7-19 17:38
職人
居住地: かまくら
投稿: 517
使用環境:
WinMe,Win2000,
Flash4,アズさん,大仏、delphi
Re: ActionScript3.0のすごいところって?
なんかAS2の数字が異様に大きすぎると思うのですが

Flash5フォーマットで
forループ100万回で内部で変数に加算するという同様のものが

+=1 相当で800ms
n=n+1 相当で1sでした。
ちなみに結果はtraceを使わずにテキストフィールドへ出力しています。

WinME P4 1.8GHzです。
とりあえず

あとこれはAS2 とAS3という言語の問題ではなくて

マクロメディアVM1 V.S. アドビ VM2であり
AS3は根本的にFlashとは違うものにswfフォーマットヘッダーをつけたものであり
スクリプトとしてはそれなりに評価できるものの
「アクション部分」例えばモーションガイド相当の部分やシナリオ補完などハイエンドユーザーに必要な機能や
やると明記しているpdfとの統合による基本的クラスの再変更などを考えると
結構鬼門な気がします。

これをマスターするならばjavaでもやったほうがいいようにも思えるのですが
携帯とかもiアプリからFlashに流れているし
Flash8Basicのような安価なものがでるならばいいかもしれませんが

FLVに楽譜のように再生シーケンスをつけるとか
絵コンテとシナリオとか
そういった部分をちゃんとやって欲しかったなぁというのが私の私感です。

互換性を考えてコンテンツはpdf統合版が出るまではAS3には手をださない方向で
むしろFlash4どころかFlash2的にコンテンツ作りを頑張りたいと思わせてくれたという点で
AS3はすごい。


----------------
通常のハンドル名:×○○× ねた回収モードに突入 現在1/100

Duke15
Åê¹ÆNo.27067
投稿日時: 2006-7-19 16:00
常連
居住地: 埼玉
投稿: 196
使用環境:
XPpro,2Kpro,
MX2004prov7.2
FlashPro8
Flash9Preview α
Player8r24
Player9.0.16
Player7r63
Firefox1.5.0.5
IE6,NB8.1en
Re: ActionScript3.0のすごいところって?
面白そうなので、私も試してみました。
環境:WinXPsp2 Pen4 3.8GHz

FlashMX2004pro:3397(3.4秒)

Flash8pro:2418(2.4秒)

Flash9prev:
int型:3(0.003秒)
uint型:21(0.021秒)
Number型:9(0.009秒)

AS3.0では数値型の初期値はint型とuint型は0なので
初期値の値は入れなくてもいいようです。


var t0 = getTimer();
var n:int;
for (var i:int; i < 1000000; i++) {
    n += 1;
}
t1 = getTimer() - t0;
trace(t1);

引用:

森 巧尚さんは書きました:
数値型が3つになりましたね。>Duke15さん

単純なループ処理で試してみました。
var t0 = getTimer();
var n:Number = 1;
for (var i:Number = 0; i < 1000000; i++) {
	n += 1;
}
t1 = getTimer() - t0;
trace(t1);

というスクリプトをAS2ですると、
9519(9.519秒)でしたが、
AS3ですると
57(0.057秒)でした。(あれ、167倍?)

ここでさらに64bitのNumber型を32bitのint型にすると、
var t0 = getTimer();
var n:int = 1;
for (var i:int= 0; i < 1000000; i++) {
	n += 1;
}
t1 = getTimer() - t0;
trace(t1);

33(0.033秒)と速くなりますね。あれ、288倍?(笑)
(1.5GHz PowerMac G4 OS10.4.7)


----------------
site:
http://www.yumenext.com/
blog:
http://star.ap.teacup.com/flash/

森 巧尚
Åê¹ÆNo.27065
投稿日時: 2006-7-19 13:47
モデレータ
居住地: 宝塚
投稿: 650
使用環境:
.5/CS4/Safari3
XP+2000//IE6
Re: ActionScript3.0のすごいところって?
数値型が3つになりましたね。>Duke15さん

単純なループ処理で試してみました。
var t0 = getTimer();
var n:Number = 1;
for (var i:Number = 0; i < 1000000; i++) {
	n += 1;
}
t1 = getTimer() - t0;
trace(t1);

というスクリプトをAS2ですると、
9519(9.519秒)でしたが、
AS3ですると
57(0.057秒)でした。(あれ、167倍?)

ここでさらに64bitのNumber型を32bitのint型にすると、
var t0 = getTimer();
var n:int = 1;
for (var i:int= 0; i < 1000000; i++) {
	n += 1;
}
t1 = getTimer() - t0;
trace(t1);

33(0.033秒)と速くなりますね。あれ、288倍?(笑)
(1.5GHz PowerMac G4 OS10.4.7)


----------------
森 巧尚
http://www.ymori.com

(1) 2 »
スレッド表示 | 古いものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops