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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     Sound.position
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
まさはる
Åê¹ÆNo.25179
投稿日時: 2006-4-26 12:49
新米
居住地: よこはま
投稿: 17
使用環境:
XP SP3
Core2Duo 2.6GHz 2GB
:Flash CS4:
Sound.position
環境 Flash8 WindowsXP SP2です。

Sound.positionを使用し音の位置とキータップ時刻を判定するゲームを作っています。

positionの値が、どんなレートのファイルでも約0.05秒間隔でしか取得できない(onEnterFrameで何回か続けて同じ数値を出す)のですが、これはFlashの特性でしょうか。

また、0の次が0.186、0.233など結構進んだところからしか取れません。

元音のレートを変更したり、書き出しレートを変更したり、ファイル型式を変更したりしましたがダメなようです。これ以上厳密に時刻を取る方法をご存知の方がいらっしゃいましたらお知らせください。「無理です」なんてお返事でも結構です。別の方法考えます。
ひろゆき
Åê¹ÆNo.25181
投稿日時: 2006-4-26 13:26
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: Sound.position
引用:
まさはるさんは書きました:
positionの値が、どんなレートのファイルでも約0.05秒間隔でしか取得できない(onEnterFrameで何回か続けて同じ数値を出す)のですが、これはFlashの特性でしょうか。

例えば、flaのフレームレート(fps)を上げても、0.05秒間隔でしょうか?
#サウンドのレートではなく。

setInterval で position の値を取ると、多少は間隔が縮まるかと思いますが。


----------------
質問する際は、回答者に具体的な情報を与えてください。

まさはる
Åê¹ÆNo.25182
投稿日時: 2006-4-26 13:29
新米
居住地: よこはま
投稿: 17
使用環境:
XP SP3
Core2Duo 2.6GHz 2GB
:Flash CS4:
Re: Sound.position
最高まであげてみても同じですね。
同じ数値を返す回数が増えるのみです。
まさはる
Åê¹ÆNo.25183
投稿日時: 2006-4-26 13:38
新米
居住地: よこはま
投稿: 17
使用環境:
XP SP3
Core2Duo 2.6GHz 2GB
:Flash CS4:
Re: Sound.position
補足です。

アニメーションなどで実際のフレームレートがでていないための現象かと思い音だけで再生してみた結果がこれでした。フレームレートを120にしても、インターバルでいくら間隔を縮めても、そうなります。0.05きっかりではないですが大体この間隔でした。
ひろゆき
Åê¹ÆNo.25186
投稿日時: 2006-4-26 15:05
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: Sound.position
ムービーの一定時間停止」で、
マツダショウタさんが書かれている
「ミリ秒までの正確さは保証出来ない」ではないでしょうか?

うちの環境では、間隔は0.023くらいでしたが、
ちょっとした負荷をかけると、0.046くらいになりました。

ウェブに上げると、数値がローカルとは異なるみたいですが。

サンプル


あと、これとは別に、
Sound.start() 直後には、position がとれないことがあって、
どうも、音が実際に鳴らない (再生ヘッドが動いていない ) うちは、
position が動いていない気配でした。参考まで。


----------------
質問する際は、回答者に具体的な情報を与えてください。

まさはる
Åê¹ÆNo.25189
投稿日時: 2006-4-26 16:07
新米
居住地: よこはま
投稿: 17
使用環境:
XP SP3
Core2Duo 2.6GHz 2GB
:Flash CS4:
Re: Sound.position
サンプルまで作って検証していただいたのですね。
ありがとうございます。

ちなみに上記サンプルでテストを行った結果、多少間隔は違いますが、ものすごく似た数値を返すのです。僕が作っているゲームにおいてもこの数値が出てきます。つまりFlashは取り込まれた音ファイルをレートに関係なく一定のFlash独自のブロックに分けて処理し、このブロックよりも細かい数値は考えないようにしているのではないかと思うのです。FLVがフレーム単位でシークできないのと同じような感じがします。

onEnterFrame/30fpsの場合
0
186
186
232
325
325
418
464
511

interval/ 12fpsの場合
0
186
186
232
279
279
325
372
372
418
464

追伸:
「質問する際は具体的な…」という注意書きがありますがこの場合どのような情報があればよかったでしょうか。Flashの仕様的な部分への質問なので、実験の経過などは不要かと思ったのです。もし失礼があったのならお詫びします。文章が分かりづらかったですかね。
ひろゆき
Åê¹ÆNo.25190
投稿日時: 2006-4-26 16:21
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: Sound.position
うちの環境だと、例えば、今見てみると...。

onEnterFrame/30fpsの場合
70
93
139
186
209
255
348
395
464
511

setInterval/12fpsの場合
23
70
116
139
186
209
255
279
348
395

だったりします。
#最初の 0 は表示されないように変更しました。
#そのときどきで一部異なります。
#最初の方の数値にばらつきがあるようですが、
#原因までは、分からないです。

引用:
FLVがフレーム単位でシークできないのと同じような感じがします。

そんな感じですね。
なので、あまり正確なものは期待できないかと。

↓署名です。


----------------
質問する際は、回答者に具体的な情報を与えてください。

まさはる
Åê¹ÆNo.25191
投稿日時: 2006-4-26 16:36
新米
居住地: よこはま
投稿: 17
使用環境:
XP SP3
Core2Duo 2.6GHz 2GB
:Flash CS4:
Re: Sound.position
あ!!!

ではこれは環境に大きく左右されると言う事。
サウンドボードやCPUによって違うのかも知れませんね。
うちは毎回どんな物でもこの数字です。

色々なコンピュータで試してみますね。

ひろゆきさんの状態であれば十分なのですけど、音楽教育ソフトなので、
僕のような環境の人、それ以下の人も考慮に入れて、割と厳しい判定を
しなければならないのです。

ちなみにコンピュータのスペックはどのくらいですか? 
うちはこの他デスクトップ 3GHz/2GB、ートの1.5GHz/1.5GBで同じような症状です。

ありがとうございました。

-----
そうですか、署名ですか…。
ひろゆき
Åê¹ÆNo.25192
投稿日時: 2006-4-26 16:45
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: Sound.position
引用:
サウンドボードやCPUによって違うのかも知れませんね。
うちは毎回どんな物でもこの数字です。

Sound.position を取得する部分以外の処理を重いものにすると、
間隔が延びたりするので、内部的にどうなっているのか、よく分からないです。
ブラウザとかによっても、違っているかもしれません。
#そこまで検証するパワーがないので、申し訳ないですが。

引用:
ちなみにコンピュータのスペックはどのくらいですか?

低いですよ。
PowerPC G4 400MHz


----------------
質問する際は、回答者に具体的な情報を与えてください。

まさはる
Åê¹ÆNo.25193
投稿日時: 2006-4-26 16:57
新米
居住地: よこはま
投稿: 17
使用環境:
XP SP3
Core2Duo 2.6GHz 2GB
:Flash CS4:
Re: Sound.position
返信が来る間考えました。
そう、ひろゆきさんの方がスペックが低いんでした。

30fpsと12fpsで似た数値を出してはいるけれども、30fpsにて
12fpsの倍の密度で数字が出ているわけではなく、また数字を
よく見ると双方に同じものがでている。
つまりこれは実際30fpsで動いてはおらず、数値の始まり付近
が違うだけで僕の場合とある程度傾向は同じ、なのでした。
多少コンピュータによって傾向が異なると言う事ですね。

分かりました。こちらであと2?3台のコンピュータでテスト
してみてあまり間隔に変化がないようであれば、ここを限界と
考え、仕様を相談してみます。

ちなみに速いコンピュータでフレームレートを60fpsぐらいにして
Sound.posisitonと同時にgetTimerの数値も一緒に出力させると、
getTimerの方は常に違う細かい数値を吐き出すんですけど
Sound.posisitonは4?5回同じ数値を出力します。

お付き合いありがとうございました。
(1) 2 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

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