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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   迷える子羊の部屋【初心者専用】
     フィルターの削除
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
kolbe
Åê¹ÆNo.33894
投稿日時: 2007-6-27 12:22
新米
居住地:
投稿: 9
使用環境:
Mac OS10.3 Flash8
フィルターの削除
ムービクリップ(gsdf_2d1?gsdf_2d8)の各ボタンをロールオーバしたらフィルターがかかり、ロールアウトでフィルターがなくなることを考えています。

var obj_array:Array = new Array();
for (var i = 1; i<=8; i++) {
obj_array[i] = eval("gsdf_2d"+i);
obj_array[i].onRollOver = function() {
//filter
import flash.filters.BevelFilter;
var distance:Number = 5;
var angleInDegrees:Number = 45;
var highlightColor:Number = 0xF2FFDD;
var highlightAlpha:Number = .8;
var shadowColor:Number = 0xDEFEE0;
var shadowAlpha:Number = .8;
var blurX:Number = 5;
var blurY:Number = 5;
var strength:Number = 5;
var quality:Number = 3;
var type:String = "inner";
var knockout:Boolean = false;
var filter_over:BevelFilter = new BevelFilter(distance, angleInDegrees, highlightColor, highlightAlpha, shadowColor, shadowAlpha, blurX, blurY, strength, quality, type, knockout);
this.filters = new Array(filter_over);

 さて、このフィルターをロールアウトで削除したいのですが、どうもうまくいきません。あらためてベベルフィルターを設定し直して、アルファーを0にすると見た目には削除したようにできるようですが、もっとスマートな方法はないでしょうか。よろしくご教授お願いします。
野中文雄
Åê¹ÆNo.33896
投稿日時: 2007-6-27 15:46
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: フィルターの削除
まず、問題は単純化すべきです。疑問点を明らかにするために、8個ものインスタンスは不要でしょう。また、スクリプトにも説明は必要です。→「サンプルデータにも説明が必要

参考:「スクリプトでフィルタを使う ? BlurFilter
引用:
kolbeさんは書きました:
ムービクリップ(gsdf_2d1?gsdf_2d8)の各ボタンをロールオーバしたらフィルターがかかり、ロールアウトでフィルターがなくなることを考えています。
import flash.filters.BevelFilter;
// var obj_array:Array = new Array();
// for (var i = 1; i<=8; i++) {
var i:Number = 1;
// obj_array[i] = eval("gsdf_2d"+i);
var _mc:MovieClip = this["gsdf_2d"+i];
// obj_array[i].onRollOver = function() {
_mc.onRollOver = function() {
	//filter
	// import flash.filters.BevelFilter;
	var distance:Number = 5;
	var angleInDegrees:Number = 45;
	var highlightColor:Number = 0xF2FFDD;
	var highlightAlpha:Number = .8;
	var shadowColor:Number = 0xDEFEE0;
	var shadowAlpha:Number = .8;
	var blurX:Number = 5;
	var blurY:Number = 5;
	var strength:Number = 5;
	var quality:Number = 3;
	/* 以下の引数値はデフォルト
	var type:String = "inner";
	var knockout:Boolean = false;
	*/
	var filter_over:BevelFilter = 
	new BevelFilter(distance, angleInDegrees, highlightColor, highlightAlpha, 
	shadowColor, shadowAlpha, blurX, blurY, strength, quality);  
	// , type, knockout);
	this.filters = new Array(filter_over);
};
// }
_mc.onRollOut = function():Void  {
	this.filters = new Array();
};


----------------
 

Yoshiki Okawa
Åê¹ÆNo.33899
投稿日時: 2007-6-27 19:11
新米
居住地: Christchurch, NZ
投稿: 13
使用環境:
Windows 7 Professional
Flex SDK 4.0
Re: フィルターの削除
横からスミマセン。なんとなく、
this.filters = new Array();
よりも、
this.filters = null;
の方が、いいような気がします。コードが短くなりますし?
良くなかったらスミマセン。


----------------

野中文雄
Åê¹ÆNo.33900
投稿日時: 2007-6-27 20:24
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: フィルターの削除
まぁ、好みと精神衛生上の問題でしょう。短くすることは、できますし。
this.filters = [];
引用:
Yoshikiさんは書きました:
横からスミマセン。なんとなく、
this.filters = new Array();
よりも、
this.filters = null;
var test = this.filters;
[デバッグ] > [変数のリストアップ]より引用:
変数 _level0.gsdf_2d1.test = [オブジェクト #1, クラス 'Array'] []

の方が、いいような気がします。コードが短くなりますし?


----------------
 

kolbe
Åê¹ÆNo.33912
投稿日時: 2007-6-28 23:28
新米
居住地:
投稿: 9
使用環境:
Mac OS10.3 Flash8
Re: フィルターの削除
 なるほど。
 私はnullの方がピンとくるので、こちらを使わせていただきました。
 おふたりともありがとうございました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

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