現在、私はmouseoverイベントでスプライトに読み込まれたイメージを変更し、mouseoutで元に戻そうとしています。しかし、それは正しく動作していない、私は何かが不足している?AS3マウスオーバーイメージを変更
public class Tab extends Sprite
{
var imageLoader:Loader = new Loader();
var TabSprite:Sprite = new Sprite();
var SkinImages:Array = [Skin.TAB_ACTIVE,Skin.TAB_DISABLED,Skin.TAB_HOVER,Skin.TAB_VIEW];
public function Tab()
{
for each (var Image:String in SkinImages){
imageLoader.load(new URLRequest(Image));
}
TabSprite.buttonMode = true;
addChild(TabSprite);
TabSprite.addChild(imageLoader);
TabSprite.addEventListener(MouseEvent.MOUSE_OVER, onTabHover);
}
private function onTabHover(e:MouseEvent){
trace("HOVER");
TabSprite.removeEventListener(MouseEvent.MOUSE_OVER, onTabHover);
imageLoader.load(new URLRequest(Skin.TAB_HOVER));
imageLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,function(e:Event):void{
TabSprite.addEventListener(MouseEvent.MOUSE_OUT, onTabOut);
});
}
private function onTabOut(e:MouseEvent){
trace("OUT");
TabSprite.removeEventListener(MouseEvent.MOUSE_OUT, onTabOut);
imageLoader.load(new URLRequest(Skin.TAB_VIEW));
imageLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,function(e:Event):void{
TabSprite.addEventListener(MouseEvent.MOUSE_OVER, onTabHover);
});
}
}
私はあなたが本当に両方の画像を前面に読み込み、それぞれの画像の表示を切り替えるべきだと思います。また、読み込まれたイメージをスプライトに追加しているようには見えません。 – Neil
2つのオブジェクトが同じ(表示される)親を持ち、可視性が異なる場合、親ディメンションは非表示の子の影響を受けます。 2人の子供が同じサイズを持っている限り、これは問題ではありませんが、そうでなければ、親スプライトの位置付けで多くの "瞬間"の瞬間につながる可能性があります。だから私の答えで私は "可視"のパラメータを切り替えるのではなく、addChildとremoveChildを使用しています。それは隠された依存関係を作成しません。 –