as3でflashからJacvascriptを呼び出す
こない書けばOK(IE6はダメっぽい。。)
import flash.external.ExternalInterface; MovieBtn.buttonMode = true; MovieBtn.addEventListener(MouseEvent.CLICK, hoge); function hoge(e:MouseEvent):void { ExternalInterface.call("alert", "Hello!!"); };
mc.mouseEnabledとmc.mouseChildren
AS2の mc.enabled=Boolean は、
AS3では mc.mouseEnabled、mc.mouseChildren がそれにあたるらしい。
mc.mouseEnabled=Boolean;
オブジェクトがマウスメッセージを受け取るかどうかを指定
mc.mouseChildren=Boolean;
そのオブジェクトのすべての子に関する mouseEnabled 動作を変更
onEnterFrameについて
onEnterFrame = function () {} について、Adobeのリファレンスには以下のようにあります。
SWF ファイルのフレームレートで繰り返し呼び出されます。onEnterFrame イベントハンドラに割り当てる関数は、影響を受けるフレームに追加されている他のすべての ActionScript コードの前に処理されます。
フレームに入った瞬間毎に割り当てられた関数が繰り返し実行されるということのようです。例えば
onEnterFrame = function () { mc_A._x += 1; }
とすれば、フレームごとにmc_Aが1pxずつ移動、つまりフレームレート30に設定していれば1秒間に30px移動します。
また、いずれかのタイミングで
onEnterFrame = function () { mc_B._y += 5; }
などとすれば、onEnterFrameは上書きされて、先に定義された
onEnterFrame = function () { mc_A._x += 1; }
は無効になります。
onEnterFrameというのはthis.onEnterFrameということですので、上書きされないようにするにはムービークリップごとにonEnterFrameを定義します。つまり
mc_A.onEnterFrame = function () { mc_A._x += 1; } mc_B.onEnterFrame = function () { mc_B._y += 5; }
と書けばいいようです。
ちなみに、onEnterFrameをあえて無効にする場合には
delete my_mc.onEnterFrame;
と書きます。
Tweenerのスペシャルプロパティ
Tweenerを使用するとき、最初に
import caurina.transitions.Tweener;
と書かなければいけませんでした。
色を変化させたり、フィルターを変化させたり、ベジェ曲線に沿った動きをしたいときには、次のように書けばいいようです。
色操作
import caurina.transitions.properties.ColorShortcuts; ColorShortcuts.init(); // 初期化
_color 色:16進数形式(0xNNNNNN)
_brightness 明度
_contrast コントラスト
_hue 色相
_saturation 彩度
こちらの先輩がお詳しい。
http://plug.heteml.jp/motulog/2008/08/tweener-colorshortcuts.html
フィルタ
import caurina.transitions.properties.FilterShortcuts; FilterShortcuts.init(); // 初期化
ぼかし
_Blur_blurX
_Blur_blurY
_Blur_quality
ドロップシャドウ
_DropShadow_color
_DropShadow_alpha
_DropShadow_distance
グロー
_Glow_alpha
_Glow_blurX
_Glow_blurY
_Glow_color
_Glow_inner
_Glow_knockout
_Glow_quality
_Glow_strength
ベジェ曲線
import caurina.transitions.properties.CurveModifiers; CurveModifiers.init(); // 初期化 my_mc._x = 100; // 始点のx座標 my_mc._y = 100; // 始点のy座標 Tweener.addTween(my_mc, {_x:0, _y:0, _bezier:{_x:100, _y:100}, time:1, transition:"linear"});
_x:0, _y:0,は終着点
_bezier:{_x:100, _y:100},はコントロール座標。ぐにゃぐにゃさせたければいくつでも指定可能です。
こちらが詳しい。
http://labs.zeh.com.br/blog/?p=104
enabledをつかうべし
Tweenerでリンクボタンをalpha:0から100に変化させました。
とすると当然ながらボタンが見えてないときも、リンクボタンはクリックできてしまうわけです。
師に教えを乞うと
my_mc.enabled = boolean;
(boolean[ブーリアン] 変数や定数の型の一つで、真(true)と偽(false)の2種類の値だけを扱う最も単純な構造の型。)
をつかうべしとのこと。
my_mc.enabled = false;
と書けば、ムービークリップが無効になり、クリックできなくなります。
my_mc.enabled = false;
と書けば、ムービークリップが有効になり、クリックできるようになります。
ちなみに表示/非表示は
my_mc._visible = boolean;
で指定できるようです。
ニンニン。