Предотвращение навигации с помощью щелкающей ссылки в Actionscript - PullRequest
1 голос
/ 22 июня 2010

Я создаю текстовую кнопку с помощью actionscript. код приведен ниже.

public function createTextButton(parentId){
            var mytext:TextField = new TextField();
            mytext.x = 478;
            mytext.y = 225;
            mytext.height = 20;
            var format:TextFormat = new TextFormat();
            format.font = "Hitchcock";
            format.size = 20;
            mytext.defaultTextFormat = format; 
            mytext.textColor =  0xffffff;
            mytext.htmlText = '<a href="j#" >Click Here</a>';

            mytext.addEventListener(MouseEvent.CLICK,paginationLinkClicked);
            mytext.addEventListener(MouseEvent.MOUSE_OVER,mouseOverButton);
            mytext.addEventListener(MouseEvent.MOUSE_OUT,mouseOutButton);
            parentId.addChild(mytext);  
        }

Теперь я хочу, чтобы событие нажатия этой кнопки обрабатывалось только в моей функции обработчика событий. Не следует переходить к источнику 'href', указанному при нажатии. Как мне этого добиться.

1 Ответ

2 голосов
/ 22 июня 2010

Добавьте event.preventDefault(); в ваш обработчик событий после завершения пользовательской обработки.

Из документов Adobe: http://livedocs.adobe.com/flex/3/langref/flash/events/Event.html

flash.events.Event.preventDefault (): отменяет поведение события по умолчанию, если такое поведение можно отменить.


Обновление:

protectDefault в этом случае не будет работать .

Вам нужно будет добавить обработчик событий link и добавить префикс URL к event:. Вот упрощенная версия вашего кода:

public function createTextButton(event:Event):void
{
    myText.htmlText = '<a href="event:j#">Click Here</a>';
    myText.addEventListener(TextEvent.LINK, handle_linkClick);
}

protected function handle_linkClick(event:TextEvent):void
{
    var linkText:String = event.text; // Will give you everything after `event:`. In your case: "j#"
    // Custom code goes here....
}

TextArea docs в обработчике событий ссылки:

Отправляется, когда пользователь нажимает гиперссылка в тексте определяется свойство htmlText, где URL начинается с "event:". Остальная часть URL после «event:» помещается в свойство text события ссылки объект.

Когда вы обрабатываете событие ссылки, гиперссылка не автоматически казнены; вам нужно выполнить гиперссылка из вашего мероприятия обработчик. Вы обычно используете Метод navigateToURL () для выполнения гиперссылка. Это позволяет вам изменить гиперссылка, или даже запретить ее в вашей заявке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...