문제

안녕하세요 오늘 제 문제는 오늘 내 문제가 위아래로 미끄러지는 버튼 몇 개가 있다는 것입니다. 위쪽 상태에서 x 그래픽을 추가하여 AA 닫기 버튼을 상징합니다. 그러나 X 그래픽은 내 버튼 작업을 차단하는 것 같습니다.

alt text
(원천: flickr.com)

영화에 예가 있습니다 나는 >> 여기에서 작업하고있다 <. 여기에는 2 개의 영화가 있습니다. 큰 영화는 내가 말하는 것을 볼 수있는 파란색 탭을 클릭하면 X 버튼이 나타나지 만 X 영역을 클릭하면 버튼이 떨어지지 않습니다. 버튼을 뒤로 떨어 뜨리려면 파란색 버튼 영역을 클릭해야합니다.

이제 X 버튼을 기본적으로 동일한 방식으로 추가하는 작은 테스트 영화를 만들었습니다.

큰 영화의 내 코드는 다음과 같습니다 (트윈 코드를 숨겼으므로 너무 길지 않을 것입니다) :

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;
    }
}

}

이제 기본 테스트 영화의 코드는 다음과 같습니다.

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;
}

기본 예제에서 X를 클릭 할 수없는 이유를 알지 못하지만 탭을 닫으십시오. 그러나 내 작은 기본 영화에서 할 수 있습니까? 생각, 아이디어?

도움이 되었습니까?

해결책

첫 번째 예에서 어떻게 'closetabx'를 인스턴스화하는 방법을 게시하지 않았는데, 작은 예제 (closetabx)와 같은 클래스입니까?

간단한 '수정'은 속성을 다음과 같이 설정하면 부모에게 마우스 이벤트를 차단하지 않는다는 것입니다.

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

해당 클래스가 마우스 대상이 아닌 경우 해당 클래스의 인스턴스가 마우스 이벤트를 차단하는 것을 방지하기 위해 클래스 생성자에 이러한 속성을 설정할 수도 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top