Frage

Hallo allerseits, mein Problem ist heute ich ein paar Tasten, die nach oben und unten, wenn sie in dem Zustand ich eine X Grafik füge Sie eine Schließen-Schaltfläche symbolisieren. Doch die X Grafik scheint meine Button-Aktion zu blockieren.


(Quelle: flickr.com )

Ich habe ein Beispiel, in dem Film Ich habe auf gearbeitet >> hier << . Es gibt zwei Filme hier, die großen, wenn Sie entweder blau Registerkarte klicken, werden Sie sehen, was ich rede, X-Taste zeigt, aber den X-Bereich klicken auf die Schaltfläche unten nicht fallen. Sie haben auf blaue Schaltfläche Bereich klicken Sie die Taste wieder fallen zu lassen.

Jetzt habe ich einen kleineren Testfilm Hinzufügen der X-Taste im Grunde die gleiche Art und Weise, und wenn Sie werden feststellen, es funktioniert gut (nach rechts animieren, selbst wenn Sie die X-Grafik klicken über)

Hier mein Code im Big Film ist (verstecken ich den Tween-Code, damit es nicht so lange dauern,):

function handleButtonClick(event:MouseEvent):void {
var button:MovieClip=event.target as MovieClip;
var id:Number=Number(button.name.split("button")[1]);

dispatchEvent(new CustomEvent(CustomEvent.PAUSE_MOVIE, {}));

if (! $btn1&&! $btn2) {
    if (storeButton2==buttons[id]) {
        closeTabX.x = buttons[1].width - (closeTabX.width + 10);
        closeTabX.y=buttons[1].height/2-15;
        buttons[1].addChild(closeTabX); // X added here
        $btn2=true;
        $btn1=false;
    } else if (storeButton1 == buttons[id]) {
        closeTabX.x = buttons[0].width - (closeTabX.width + 10);
        closeTabX.y=buttons[0].height/2-15;
        buttons[0].addChild(closeTabX); // X added here
        $btn1=true;
        $btn2=false;
    }
} else if ($btn1 && !$btn2) {
    if (storeButton2==buttons[id]) {
        buttons[0].removeChild(closeTabX); // X removed here
        buttons[1].addChild(closeTabX); // X added here
        $btn2=true;
        $btn1=false;
    } else if (storeButton1 == buttons[id]) {
        buttons[0].removeChild(closeTabX); // X removed here
        $btn1=false;
    }
} else if ($btn2 && !$btn1) {
    if (storeButton2==buttons[id]) {
        buttons[1].removeChild(closeTabX);
        $btn2=false;
    } else if (storeButton1 == buttons[id]) {
        buttons[1].removeChild(closeTabX); // X removed here
        buttons[0].addChild(closeTabX); // X added here
        $btn1=true;
        $btn2=false;
    }
}

}

Hier ist der Code in meinem Grundtestfilm:

var blueButton:MovieClip;
var closeBtnX:MovieClip;

blueButton = new BlueButton;
blueButton.buttonMode = true;

closeBtnX = new CloseTabX;
closeBtnX.x = blueButton.width/2 - closeBtnX.width;

addChild(blueButton);


blueButton.addEventListener(MouseEvent.MOUSE_UP, specialClick);

function specialClick(event:MouseEvent):void
{
  blueButton.addChild(closeBtnX); // X added here
  blueButton.x = blueButton.x+10;
}

ich nicht, warum Sie nicht auf der X im Haupt Beispiel der Registerkarte schließen klicken können, aber Sie können in dem meinem kleinen Grundfilm? Gedanken, Ideen?

War es hilfreich?

Lösung

Sie nicht schreiben, wie Sie im ersten Beispiel ‚closeTabX‘ sind instanziiert wird, ist es die gleiche Klasse wie das kleinere Beispiel (CloseTabX)?

Ein einfaches ‚fix‘ ist, wenn Sie es Eigenschaften wie es Mausereignisse blockieren nicht folgt, um es Eltern:

closeTabX.mouseEnabled = false;
closeTabX.mouseChildren = false;

Wenn diese Klasse wird nie zu sein, eine Maus Ziel gedacht, Sie auch diese Eigenschaften in der Klasse Konstruktor festgelegt können alle Instanzen dieser Klasse zu verhindern, Mausereignisse blockieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top