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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   ActionScript 3.0 特設会議室
     BitmapData applyFilter
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
skunk
Åê¹ÆNo.37755
投稿日時: 2008-2-25 22:26
新米
居住地:
投稿: 7
使用環境:
Win2000,Flash MX
BitmapData applyFilter
お世話になります。


applyFilterのヘルプに

--------------------------------------------
sourceBitmapData パラメータとして指定されたオブジェクトと BitmapData オブジェクトが同じであれば、Flash Player はオブジェクトの一時コピーを使ってフィルタを実行します。最適なパフォーマンスを得るには、このような状況を避けてください。
--------------------------------------------

とあります。

a.applyFilter(a , a.rect , new Point , new BlurFilter());

よりも
明示的に一時コピーする。

var clone=a.clone();
a.applyFilter(clone . a.rect ,,,,,);
clone.dispose();
としたほうがパフォーマンスが高い???
いやいやと思い、
テストしてみましたが、
当然、
明らかに後者のほうが、
遅いです。

で、このような場合
var bitmap=new Bitmap(a);
bitmap.filters=new BlurFilter();
としたほうが早い気がしますが、
そういうことですかね?

それともこの処理中に、ロックをかけないと、
処理の割り込みが発生するとかそういう意味ですか?
非同期ではないとおもいますが。。

詳しい方いましたら教えてくださいませ。


ニノミヤ カズノリ
Åê¹ÆNo.37767
投稿日時: 2008-2-26 17:58
職人
居住地: 東京
投稿: 430
使用環境:
CS4
.4.11, .5.7
XP Pro(sp3)
Flash Player 10,0,22,87,
AIR 1.5.1,
IE 5.5 & 6 & 7 & 8,
Firefox 2.0.0.20 & 3.0.11 & 3.5,
Opera 9.64,
Safari 4,
Google Chrome 2.0.172.31,
Netscape 7.1
Re: BitmapData applyFilter
この手はまったく詳しくありません。
テストもしていません。
以下、全て想像です。

a.applyFilter(a , a.rect , new Point , new BlurFilter());

実際の処理は知りませんが、
applyFilterの第一引数に適用させるオブジェクト(この場合a)を入れると、
自動的に下記の様な処理を内部で行っているのではないでしょうか。
var clone=a.clone();
a.applyFilter(clone . a.rect ,,,,,);
clone.dispose();

明示的に実行した場合の方が処理が遅いというのは、
目的の処理以外に他にも処理が走っている事から来ていると予想します。
skunk
Åê¹ÆNo.37772
投稿日時: 2008-2-26 23:04
新米
居住地:
投稿: 7
使用環境:
Win2000,Flash MX
Re: BitmapData applyFilter
ありがとうございます。
ただ、他の処理の影響はないです。
何もしていません。

で、
クローンを作成すると同様の処理を内部で
行っているのであれば、
srcに同じbitmapDataを指定するのは、
問題ないと思うので、
何か違う理由があると考えています。

細かい事ですが、気になりません?


ニノミヤ カズノリ
Åê¹ÆNo.37773
投稿日時: 2008-2-26 23:37
職人
居住地: 東京
投稿: 430
使用環境:
CS4
.4.11, .5.7
XP Pro(sp3)
Flash Player 10,0,22,87,
AIR 1.5.1,
IE 5.5 & 6 & 7 & 8,
Firefox 2.0.0.20 & 3.0.11 & 3.5,
Opera 9.64,
Safari 4,
Google Chrome 2.0.172.31,
Netscape 7.1
Re: BitmapData applyFilter
引用:
skunkさんは書きました:
ただ、他の処理の影響はないです。
何もしていません。

私が言いたい他の処理と言うのは、作り手側の影響もあるかもしれませんが、
そうではなく、Flash側内部の話です。

・ビットマップをクローンする
・フィルタを適用させる
・メモリを解放する

この一連の流れをActionScriptのメソッドから呼び出していく場合、
もしかしたら処理中に他にも何かしらの作業を行っているかもしれません。
それよりは、内部的に一時コピーを実行してフィルタをかける目的のみの処理の方が
ActionScriptを介さず直で行いますし、速いのではないのかな、と言う予想です。
skunk
Åê¹ÆNo.37774
投稿日時: 2008-2-26 23:57
新米
居住地:
投稿: 7
使用環境:
Win2000,Flash MX
Re: BitmapData applyFilter
どうもありがとうございます。
そういう事でしたか。。。
すいません。

ただクローンを作成し、
別のbitmapDataを渡した処理した方が
遅かったので、ヘルプの文章が、
引っかかっております。


スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

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