MovieAssetMaterialで適用したmcにあるボタンにカーソルが反応しない

前提としてMovieAssetMaterialのmcでボタンを有効にするには、MaterialObject3D.interactiveをtrueにする必要がある。Viewport3Dクラスにもinteractiveがあるけど、こちらは関係ないみたい。設定しなくて大丈夫でした。

例)
var name_slide:String = “panel”;
var material:MovieAssetMaterial = new MovieAssetMaterial(name_slide,true,true,false,true);
material.oneSide = false;
material.smooth = true;
material.interactive = true;

で、このmcの中にあるボタンイベントは問題なく動作するものの、カーソルが変化しない。ボタンでもムービークリップにmc.buttonMode = trueでもダメ。
仕方ないので、強制的にカーソルを変更する事で対処。ボタン自体も反応しないので、ムービークリップに変更してボタン表示もスクリプト制御にする。
例)
btn_next.addEventListener(MouseEvent.ROLL_OVER,onRollOver_btn);
btn_next.addEventListener(MouseEvent.ROLL_OUT,onRollOut_btn);
btn_next.addEventListener(MouseEvent.MOUSE_DOWN,onPress_btn);
btn_next.addEventListener(MouseEvent.CLICK,onClick_next);
function onClick_next(evt:MouseEvent):void {
//var wObj_parent:Object = this.parent;
var target_mc:MovieClip = evt.currentTarget as MovieClip;
target_mc.gotoAndPlay(“f_over”);
this.gotoAndPlay(“c1_2”);
trace(“click next!”);
}
function onRollOver_btn(evt:MouseEvent):void {
var target_mc:MovieClip = evt.currentTarget as MovieClip;
target_mc.gotoAndPlay(“f_over”);
Mouse.cursor = MouseCursor.BUTTON;
}
function onRollOut_btn(evt:MouseEvent):void {
var target_mc:MovieClip = evt.currentTarget as MovieClip;
target_mc.gotoAndPlay(“f_off”);
Mouse.cursor = MouseCursor.AUTO;
}
function onPress_btn(evt:MouseEvent):void {
var target_mc:MovieClip = evt.currentTarget as MovieClip;
target_mc.gotoAndPlay(“f_on”);
}
う〜ん、一応動いたけど、F9だとMouse.cursorが使えないので、F10/AS3.0でないと使えない。なんとかならないのかな〜。

このブログについて

最近、またActionScript関連で自分用にメモを残すようになりました。その備忘録と整理しやすさからブログにしてみる事にしました。過去、そして現在もお世話になっている様々なサイトのようにはいかないかもしれないけど、自分が躓いた事も誰かの役に立つかもしれない・・・。

そんな思いも含め気づいたこと、解決したことなど、書いていければと思います。よろしくお願いします。

AS,Objective-C,Javascript,その他諸々の備忘録