|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
HTML-компонент и получение элементов страницы
Товарищи, каким образом можно получить html-элемент во флексовском компоненте HTML, на который я навел курсор или по которому кликнул. Причем если я ткнул по ссылке в загруженной странице - запретить переход по ней и так же получить, скажем, её id или class?
Понятно, что можно обратиться к элементу, если я знаю его класс. Но если он мне неизвестен (адрес страницы каждый раз разный) - тут уже хуже. Ткните куда гуглить или где почитать, пожалуйста.
__________________
Кодинг, багинг, алгоритминг. me @ |
|
|||||
Не экспериментировал, но можно как в display list подписаться у body на capture фазу мышиных событий, отлавливать все объекты и проверять их id и class.
__________________
משיח לא בא משיח גם לא מטלפן |
|
|||||
Вах, что получается.
После загрузки контента - получаем body страницы. Пока для теста присвоил всему чему можно mousemove, даже трейсит. <mx:HTML id="myhtml" x="0" y="0" width="100%" height="100%" location="http://localhost/test.html" complete="makeListeners();"/> private function makeListeners():void { trace("BODY: "+myhtml.domWindow.document.body); var body:* = myhtml.domWindow.document.body; for (var prop:String in body) { try { var testLink:Object = body[prop]; if(testLink.innerHTML != '') { testLink.addEventListener("mousemove", onMouseMove) } } catch(e:Error) {} } } private function onMouseMove(evt:MouseEvent):void { trace(evt.target.innerHTML); }
__________________
Кодинг, багинг, алгоритминг. me @ |
|
|||||
Попробуй так:
<mx:HTML id="myhtml" x="0" y="0" width="100%" height="100%" location="http://localhost/test.html" htmlDOMInitialize="makeListeners();"/> private function makeListeners():void { var body:Object = myhtml.domWindow.document.body; body.addEventListener("mousemove", onMouseMove, true); } private function onMouseMove(evt:MouseEvent):void { trace(evt.target.innerHTML); }
__________________
משיח לא בא משיח גם לא מטלפן |
|
|||||
Не, не стреляет, пробовал. Говорит:
Type Coercion failed: cannot convert __HTMLScriptObject@2fa6d91 to flash.events.MouseEvent. То бишь трейсит все, вплоть до функций, объявленных в тегах <script>. Цитата:
По сути код рабочий, осталось разграничить объекты, которым этот mousemove надо цеплять. Добавлено через 18 минут Ха, подбираемся к истине. Нашел решение, которое, в принципе, меня устраивает на текущий момент времени. Опять же подписываем html на complete, далее берем код alatar. И в обработчике указываем что трейсить конкретно. private function makeListeners():void { var body:Object = myhtml.domWindow.document.body; body.addEventListener("mouseover", onMouseMove, true); } private function onMouseMove(evt:*):void { if(evt.target.tagName != 'BODY') { trace(evt.target.outerHTML); } } Цитата:
__________________
Кодинг, багинг, алгоритминг. me @ Последний раз редактировалось DaFive; 26.11.2012 в 14:43. |
|
|||||
Цитата:
__________________
משיח לא בא משיח גם לא מטלפן |
Часовой пояс GMT +4, время: 09:47. |
|
« Предыдущая тема | Следующая тема » |
Теги |
click , event , flex , html |
Опции темы | |
Опции просмотра | |
|
|