AS2で開発中のメモ
通常flashで外部ファイルを読む時は、swfが埋め込まれているhtmlからの
相対パスなのだが、NetStreamを使ってFLVを再生する際の
flvファイルへのパス指定は、flvをロードするswfからの相対パスだった。
AS2で開発中のメモ
通常flashで外部ファイルを読む時は、swfが埋め込まれているhtmlからの
相対パスなのだが、NetStreamを使ってFLVを再生する際の
flvファイルへのパス指定は、flvをロードするswfからの相対パスだった。
caurina.transitions.properties の中にある
6つのasファイルから抜き出した。
それぞれ 〜.init(); が必要。
(例: ColorShortcuts.init();)
AS2, AS3共通
———————————————————————-
■ ColorShortcuts
_color_ra
_color_rb
_color_ga
_color_gb
_color_ba
_color_bb
_color_aa
_color_ab
色 16進数形式 (0x000000〜0xFFFFFF)
_color
_colorTransform
明度
_brightness
_tintBrightness
コントラスト
_contrast
色相
_hue
彩度
_saturation
_dumbSaturation
詳細
_color_redMultiplier
_color_redOffset
_color_greenMultiplier
_color_greenOffset
_color_blueMultiplier
_color_blueOffset
_color_alphaMultiplier
_color_alphaOffset
———————————————————————-
■ CurveModifiers
_bezier
———————————————————————-
■ DisplayShortcuts
スケール (_xscale, _yscale連動)
_scale
アルファ (_visible切り替え機能付き)
_autoAlpha
フレーム
_frame
_scrollRect_x
_scrollRect_y
_scrollRect_left
_scrollRect_right
_scrollRect_top
_scrollRect_bottom
_scrollRect_width
_scrollRect_height
———————————————————————-
■ FilterShortcuts
ベベル
_Bevel_angle
_Bevel_blurX
_Bevel_blurY
_Bevel_distance
_Bevel_highlightAlpha
_Bevel_highlightColor
_Bevel_highlightColor_r
_Bevel_highlightColor_g
_Bevel_highlightColor_b
_Bevel_knockout
_Bevel_quality
_Bevel_shadowAlpha
_Bevel_shadowColor
_Bevel_shadowColor_r
_Bevel_shadowColor_g
_Bevel_shadowColor_b
_Bevel_strength
_Bevel_type
ブラー
_Blur_blurX
_Blur_blurY
_Blur_quality
カラーマトリックス
_ColorMatrix_matrix
_ColorMatrix_matrix_rr
_ColorMatrix_matrix_rg
_ColorMatrix_matrix_rb
_ColorMatrix_matrix_ra
_ColorMatrix_matrix_ro
_ColorMatrix_matrix_gr
_ColorMatrix_matrix_gg
_ColorMatrix_matrix_gb
_ColorMatrix_matrix_ga
_ColorMatrix_matrix_go
_ColorMatrix_matrix_br
_ColorMatrix_matrix_bg
_ColorMatrix_matrix_bb
_ColorMatrix_matrix_ba
_ColorMatrix_matrix_bo
_ColorMatrix_matrix_ar
_ColorMatrix_matrix_ag
_ColorMatrix_matrix_ab
_ColorMatrix_matrix_aa
_ColorMatrix_matrix_ao
_Convolution_alpha
_Convolution_bias
_Convolution_clamp
_Convolution_color
_Convolution_r
_Convolution_g
_Convolution_b
_Convolution_divisor
_Convolution_matrixX
_Convolution_matrixY
_Convolution_preserveAlpha
_DisplacementMap_alpha
_DisplacementMap_color
_DisplacementMap_color_r
_DisplacementMap_color_g
_DisplacementMap_color_b
_DisplacementMap_componentX
_DisplacementMap_componentY
_DisplacementMap_mapBitmap
_DisplacementMap_mapPoint
_DisplacementMap_mode
_DisplacementMap_scaleX
_DisplacementMap_scaleY
ドロップシャドウ
_DropShadow_alpha
_DropShadow_angle
_DropShadow_blurX
_DropShadow_blurY
_DropShadow_color
_DropShadow_color_r
_DropShadow_color_g
_DropShadow_color_b
_DropShadow_distance
_DropShadow_hideObject
_DropShadow_inner
_DropShadow_knockout
_DropShadow_quality
_DropShadow_strength
グロー
_Glow_alpha
_Glow_blurX
_Glow_blurY
_Glow_color
_Glow_color_r
_Glow_color_g
_Glow_color_b
_Glow_inner
_Glow_knockout
_Glow_quality
_Glow_strength
_GradientBevel_angle
_GradientBevel_blurX
_GradientBevel_blurY
_GradientBevel_distance
_GradientBevel_quality
_GradientBevel_strength
_GradientBevel_type
_GradientGlow_angle
_GradientGlow_blurX
_GradientGlow_blurY
_GradientGlow_distance
_GradientGlow_knockout
_GradientGlow_quality
_GradientGlow_strength
_GradientGlow_type
———————————————————————-
■ SoundShortcuts
_sound_volume
_sound_pan
———————————————————————-
■ TextShortcuts
_text_color
_text_color_r
_text_color_g
_text_color_b
_text_indent
_text_leading
_text_leftMargin
_text_letterSpacing
_text_rightMargin
_text_size
———————————————————————-
AS2 コンストラクタ内でステージサイズを取得して BitmapData を
つくろうとしたところ、Stage.width と Stage.height が 0 になってしまい
BitmapData がうまく作れない問題に出会った。
他にも重めのビットマップ処理系を走らせていたので
色々影響しあったのかもしれない。
FirefoxよりIEでよく発生する。
少し待てば大丈夫そうだったのでonEnterFrameで少し待つ。
/* ActionScript2 */
this._mc.onEnterFrame = Delegate.create(this, function(){
if(Stage.width>0){
//ここから色々実行
var bmp:BitmapData = new BitmapData(Stage.width, Stage.height, false, 0xFFFFFF);
this._mc.onEnterFrame=null;
}
});
iTunesで圧縮したMP3をFlashに読み込んだ時に
再生スピードが代わってしまうことがある。その回避法。
おそらく、サンプリングレートを11の倍数に と、
可変ビットレート禁止 ということ。
再生できるMP3の制限
FlashでMP3を再生する場合、以下の点を満たしていないとサウンドの再生スピードが変ってしまうことがあるようです。
* サンプリングレートが 44KHz、22KHz、11KHz のどれかである。
* エンコードモードは CBR(固定ビットレート)
ステージ上にテキストフィールドを生成し、そこにtrace結果を出力する。
ブラウザ上でのデバッグ、検証に役立つはず。
実行方法: Debug.trace(〜);
/* ActionScript2 */
class Debug{
private static var _isInit:Boolean;
private static var _debugTf:TextField;
private static var _enableDisplay:Boolean = false;
private static var _enableWindow:Boolean = false;
private function Debug(){
}
/**
* デバッグの初期化
* @param テキストフィールドをアタッチしたいMC(指定なしは_root)
* @param ステージ上へのトレース許可(指定なしはtrue)
* @param 出力ウインドウへのトレース許可(指定なしはtrue)
*/
public static function init(mc:MovieClip, enableDisplay:Boolean, enableWindow:Boolean):Void{
Debug._enableDisplay = (enableDisplay==undefined)? true : enableDisplay;
Debug._enableWindow = (enableWindow==undefined)? true : enableWindow;
//テキストフィールドの生成(実行は1度だけ)
if(Debug._isInit){
return;
}
Debug._isInit = true;
var targMc:MovieClip = (mc)? mc : _root;
Debug._debugTf = targMc.createTextField("debug_tf",targMc.getNextHighestDepth(), 0,0,0,0);
Debug._debugTf.autoSize=true;
Debug._debugTf.multiline = true;//複数行許可(テキスト上をドラッグして古いのも見れる)
Debug._debugTf.textColor = 0x00FF00;
//一度ダミーのテキストを入れ、1行分の縦幅を調べる → autoSizeをオフにし、サイズをFIX。
Debug._debugTf.text = "TEST";
var tempHeight = Debug._debugTf._height;
Debug._debugTf.autoSize = false;
Debug._debugTf.text = "";
Debug._debugTf._height = tempHeight;
Debug._debugTf._width = Stage.width;
}
/**
* トレース処理
* @param トレースしたいオブジェクト
*/
public static function trace(obj:Object):Void{
//initがまだ実行されていない時は実行する
if(!Debug._isInit){
Debug.init();
}
//ステージへ
if(Debug._enableDisplay){
Debug._debugTf.text += "n" + obj.toString();
//常に一番下の行へ移動する
Debug._debugTf.scroll = Debug._debugTf.maxscroll;
}
//出力ウィンドウへ
if(Debug._enableWindow){
trace(obj);
}
}
}
– asファイル
Debug.zip
結果は予想していたが実験。
1. MovieClipを5000個つくり、ランダムに配置。中心に移動。
2. 5000個のランダムな座標を配列で記憶し、それぞれが中心へ移動する通過点を
求める。毎フレーム、bitmapDataのカンバス上にsetPixelで描画。
2の方が負荷が軽い。
マシンによっては3000個くらいまでならフレームレートを維持できるかも。
5000個になると1はMovieClipを作るだけで大変。
何でもMC主体ではなく、グラプロの思考を持とう。
– flaファイル
bmp_vs_mc.zip
ビットマップデータは乗算済みカラー値として保存される。
getPixel32 はその乗算済みの値を、getPixel は乗算されていない値を返す。
getPixel32 (BitmapData.getPixel32 メソッド)
戻り値
Number – ARGB ピクセル値を表す数値。(x , y ) 座標がイメージの境界外である場合は、0 を返します。ビットマップが、透明ではなく不透明として作成された場合、このメソッドはエラーコード -1 を返します。
getPixel (BitmapData.getPixel メソッド)
BitmapData オブジェクトの特定ポイント (x , y ) の RGB ピクセル値を表す整数を返します。getPixel() メソッドは、乗算されていないピクセル値を返します。アルファ情報は返しません。
BitmapData オブジェクト内のピクセルはすべて、乗算済みカラー値として保存されます。乗算済みイメージピクセルは、アルファデータが既に乗算された赤、緑、青の各カラーチャンネル値を保持します。たとえば、アルファ値が 0 の場合、乗算されていない値に関わらず、RGB チャンネルの値も 0 になります。
このようにデータが失われると、処理の実行時に問題が生じることがあります。Flash Player のメソッドはすべて、乗算されていない値を受け取ったり返したりします。ピクセルの内部表現は、値として返される前、乗算されていません。設定処理の際は、ピクセル値が事前に乗算されてから、生のイメージピクセルが設定されます。
– 参考サイト
3895.setPixel32で設定した値をgetPixel32で取得できない FLASH-JP.COM – フォーラム
trace(this); で [Object Object] 以外の出力を得たい時は
toStringメソッドをオーバーライドすれば良い。
/* ActionScript2 */
class Init{
public function Init(mc:MovieClip){
trace(this); //結果: Init
}
public function toString():String {
return "Init"
}
}
AS3では心配なし。
/* ActionScript3 */
package{
class Init{
public function Init(mc:MovieClip){
trace(this); //結果: [object Init]
}
}
}
return “[object Init]” と書いておけば気持ちだけはAS3。
– 参考サイト
toString (Object.toString メソッド)
今まで意識して使ったことがなかったが
どこかで役立つかも。
instanceof 演算子
object instanceof classConstructor
object が classConstructor のインスタンスまたは classConstructor のサブクラスであるかどうかをテストします。instanceof 演算子は、プリミティブタイプをラッパーオブジェクトに変換しません。たとえば、次のコードは true を返します。
new String(“Hello”) instanceof String;
一方、次のコードは false を返します。
“Hello” instanceof String;
TweenerでaddTweenするオブジェクト指定で this が使えた。
3次元の座標を持ったクラスで移動や回転の処理する時などに便利。
今まで同じことするのに3倍くらい無駄な書き方してた。
/* ActionScript2 */
var _param:Number = 20;
Tweener.addTween(this, {_param:0, time:1, onUpdate:function():Void{trace(this._param);}});
/*結果:
12.2186291796976
9.64902265253771
7.6720602823465
(省略)
0.010466552509385
0.00423725405545383
0 */