首页 > 未分类 > 事件冒泡阻止event.stopPropagation()
2019
12-06

事件冒泡阻止event.stopPropagation()

package
{
    import flash.display.*;
    import flash.events.*;
    import flash.text.*;

    public class EventBubble extends Sprite
    {
        private var msgTxt:TextField;
        public var msg_txt:TextField;
        private var father1:Sprite;
        private var father2:Sprite;
        private var child1:Sprite;
        private var child2:Sprite;

        public function EventBubble()
        {
            this.father1 = new Sprite();
            this.father2 = new Sprite();
            this.child1 = new Sprite();
            this.child2 = new Sprite();
            this.msgTxt = this.getChildByName("msg_txt") as TextField;
            this.father1.graphics.beginFill(6671615);
            this.father1.graphics.drawRect(0, 0, 180, 140);
            this.father1.graphics.endFill();
            this.father1.x = 0;
            this.father1.y = 0;
            addChild(this.father1);
            this.father2.graphics.beginFill(5854273);
            this.father2.graphics.drawRect(0, 0, 180, 140);
            this.father2.graphics.endFill();
            this.father2.x = this.father1.x + this.father1.width + 5;
            this.father2.y = this.father1.y;
            addChild(this.father2);
            this.child1.graphics.beginFill(5854273);
            this.child1.graphics.drawRect(0, 0, 80, 40);
            this.child1.graphics.endFill();
            this.child1.x = 20;
            this.child1.y = 20;
            this.father1.addChild(this.child1);
            this.child2.graphics.beginFill(6671615);
            this.child2.graphics.drawRect(0, 0, 80, 40);
            this.child2.graphics.endFill();
            this.child2.x = 20;
            this.child2.y = 20;
            this.father2.addChild(this.child2);
            this.father1.addEventListener(MouseEvent.CLICK, this.fatherClickHandler);
            this.father2.addEventListener(MouseEvent.CLICK, this.fatherClickHandler);
            this.child1.addEventListener(MouseEvent.CLICK, this.child1ClickHandler);
            this.child2.addEventListener(MouseEvent.CLICK, this.child2ClickHandler);
            return;
        }// end function

        private function fatherClickHandler(event:MouseEvent) : void
        {
            trace("冒了。");
            this.msgTxt.appendText("冒了。\n");
            return;
        }// end function

        private function child1ClickHandler(event:MouseEvent) : void
        {
            trace("冒泡了嗎?");
            this.msgTxt.appendText("冒泡了嗎?\n");
            return;
        }// end function

        private function child2ClickHandler(event:MouseEvent) : void
        {
            event.stopPropagation();
            trace("冒泡了嗎?");
            this.msgTxt.appendText("冒泡了嗎?\n");
            return;
        }// end function

    }
}

最后编辑:
作者:游戏创作者大陆