ちょっと落ち着こう・・・
デザイン的な事ばっかり考えてたんで
すっかりユーザビリティ的なこと忘れてました
テーブルのデータ扱うなら
ラベルに基づいて行を取り出す関数が必須だし
その取り出した行を使う形で
関数を書いておくべきですよね
一応オブジェクトの配列って形なんで
filter()でもかけてやりゃ一発なんですが
search({フィールド名:値、フィールド名:値}):Array
ぐらいでいけるように関数追加しときます
すっかりユーザビリティ的なこと忘れてました
テーブルのデータ扱うなら
ラベルに基づいて行を取り出す関数が必須だし
その取り出した行を使う形で
関数を書いておくべきですよね
一応オブジェクトの配列って形なんで
filter()でもかけてやりゃ一発なんですが
search({フィールド名:値、フィールド名:値}):Array
ぐらいでいけるように関数追加しときます
エンボス効果のフィルタを作る
ActionScript3でエンボス効果を得るには
ヘルプにも書いてますがConvolutionFilterを使います
ConvolutionFilterってのは
フォトショップのカスタムフィルタにあたります
こいつを使えばエンボス効果やエッジの抽出効果が得られます
xxx.filters=[bmfEmbos(強度、方向)]
方向は"topLeft","top","topRight"...などの8方向を表す文字列です
ヘルプにも書いてますがConvolutionFilterを使います
ConvolutionFilterってのは
フォトショップのカスタムフィルタにあたります
こいつを使えばエンボス効果やエッジの抽出効果が得られます
xxx.filters=[bmfEmbos(強度、方向)]
方向は"topLeft","top","topRight"...などの8方向を表す文字列です
function bmfEmbos(s:Number=80,d:String="topLeft"):ConvolutionFilter {
var rtn=new ConvolutionFilter();
if (s<0) {
s=0;
}
rtn.matrixX=3;
rtn.matrixY=3;
switch (d) {
case "top" :
rtn.matrix=[
s,2*s,s,
0,0,0,
-s,-2*s,-s
];
break;
case "topRight" :
rtn.matrix=[
0,s,2*s,
-s,0,s,
-2*s,-s,0
];
break;
case "right" :
rtn.matrix=[
-s,0,s,
-2*s,0,2*s,
-s,0,s
];
break;
case "bottomRight" :
rtn.matrix=[
-2*s,-s,0,
-s,0,s,
0,s,2*s
];
break;
case "bottom" :
rtn.matrix=[
s,2*s,s,
0,0,0,
s,-2*s,s
];
break;
case "bottomLeft" :
rtn.matrix=[
0,-s,-2*s,
s,0,-s,
2*s,s,0
];
break;
case "left" :
rtn.matrix=[
s,0,-s,
2*s,0,-2*s,
s,0,-s
];
break;
case "topLeft" :
rtn.matrix=[
2*s,s,0,
s,0,-s,
0,-s,-2*s
];
break;
}
rtn.divisor=100;
rtn.bias=127;
return rtn;
}
簡単にGradientGlowFilter、GradienBevelFilterを生成する
グラデーション関係のスクリプトって引数に
色の配列、透明度の配列、位置の配列
ってのが必須になっててしかも
全部ちゃんと数あわせないとだめなんですが
めんどいですよね
位置なんて大概等間隔なのに
3つの配列の数が合ってなかったらエラー返されるし
ってことで、距離と方向、ぼかし値とARGB値(32bit値)の配列の
4つの引数だけで簡単にグラデーショングロウとグラデーションベベルの
フィルタを生成するための関数です
ノックアウトがtrueになってるのは趣味ですww
このノックアウトもそれをコンストラクタで設定するには
それまでに4つぐらい任意の引数を書かなきゃいけなかったり面倒いですよね
っていうかGradientGlowFilterって名前がそもそも長い!
第五引数に任意で設定できるようにしとくべき?
Effectクラスの静的メソッドの中にあったもので
bmfとか頭についてるのはBitmapFilterの略です
xxx.filters=[Effect.bmfGlow(10,45,10,[0xFF88FF88,0x00FF8888])]
とかいうかんじにつかってたわけです
色の配列、透明度の配列、位置の配列
ってのが必須になっててしかも
全部ちゃんと数あわせないとだめなんですが
めんどいですよね
位置なんて大概等間隔なのに
3つの配列の数が合ってなかったらエラー返されるし
ってことで、距離と方向、ぼかし値とARGB値(32bit値)の配列の
4つの引数だけで簡単にグラデーショングロウとグラデーションベベルの
フィルタを生成するための関数です
ノックアウトがtrueになってるのは趣味ですww
このノックアウトもそれをコンストラクタで設定するには
それまでに4つぐらい任意の引数を書かなきゃいけなかったり面倒いですよね
っていうかGradientGlowFilterって名前がそもそも長い!
第五引数に任意で設定できるようにしとくべき?
public static function bmfGlow(dst:Number,drc:Number,b:Number,argbList:Array):GradientGlowFilter{
var colors=new Array()
var alphas=new Array()
var ratios=new Array()
var len=argbList.length
for(var i=0;i var argb=argbList[i]
colors.push(argb%0x01000000)
alphas.push(Math.floor(argb/0x01000000)/255)
ratios.push(i*255/len)
}
return new GradientGlowFilter(dst,drc,colors,alphas,ratios,b,b,1,1,"inner",true)
}
public static function bmfBevel(dst:Number,drc:Number,b:Number,argbList:Array):GradientBevelFilter{
var colors=new Array()
var alphas=new Array()
var ratios=new Array()
var len=argbList.length
for(var i=0;i var argb=argbList[i]
colors.push(argb%0x01000000)
alphas.push(Math.floor(argb/0x01000000)/255)
ratios.push(i*255/len)
}
return new GradientBevelFilter(dst,drc,colors,alphas,ratios,b,b,1,1,"inner",true)
}
Effectクラスの静的メソッドの中にあったもので
bmfとか頭についてるのはBitmapFilterの略です
xxx.filters=[Effect.bmfGlow(10,45,10,[0xFF88FF88,0x00FF8888])]
とかいうかんじにつかってたわけです