![]() |
Как в textField сделать IMG ссылкой?
Вложений: 1
В тексте TextField.htmlText встречается тег img. При щелчке на нем должна вызываться определенная функция.
Следующий вариант ссылки не работает, если embedFonts==true: Код:
...<a href="event:someArgument"><img src="someimage.jpg" id="someimage"></a>...Пробовал также получить доступ к изображению через getImageReference и подвесить на него event хотя бы таким образом, но событие по прежнему не происходит. Как выполнить эту задачу- сделать img, находящийся в TextField, ссылкой, при сохранении использования встроенных во флэшку шрифтов? |
тег img закрывать не забывайте. Приведенный вариант при закрытом img работает.
|
Боюсь, что закрытие непарных тегов тоже не помогает. Я прикрепил к теме исходник примера для иллюстрации проблемы
|
Исходный код я не качал, но вот пример, в котором все работает:
Код:
var tf:TextField=new TextField(); |
уберите tValue.embedFonts = true;
и будет вам счастье :) |
ну, чет-то не понятно, как может быть
tValue.embedFonts = true; когда, вроде бы внедренного шрифта, как бы и нету... Он же должен быть в библиотеке, что бы стать внедренным. Если все таки имеется желание его внедрить. Может вы поймете, я не понял. All examples can be found on http://easeyourdigitallife.blogspot....3-example.html and http://easeyourdigitallife.blogspot....ple-using.html |
Цитата:
Цитата:
|
Возможно, но в примере автора изображение не работало как ссылка именно потому что: embedFonts = true;
|
да, но по идее оно должно работать...embedFonts = true не должен этому мешать
|
Почему не должен мешать ?
Вы можете в обычную html страницу внедрить шрифт ? По видимому htmlText и embedFonts несовместими, так что лучше уж доконца следовать правилам html и использовать класс StyleSheet... |
Цитата:
Что вам не нравится в embedFonts? Просто embeнденные шрифты работают коряво (без использования сторонних менеджеров типа, FontsLab, FontManager и т.д.). Но работают. Расскажу вам про один баг (еще с 6ой тянется). Берем, создаем tf (TextField), создаем в либе шрифт (скажем verdana, 10), создаем tfo (TextFormat) с этим шрифтом, задаем tf >> defaultTextFormat >> tfo и пихаем в tf нтмл строку, скажем "Hello <b>world!</b>". И что мы увидим? А увидим мы "Hello". А почему? А потому что полужирный мы не заембендили. Выхода два: в либе создаем... Ну, понятно. Второй (корявый): кидаем на сцену tf, в свойствах текстового поля эмбендим verdana, 10 и нажимаем кнопочку "B" т.е. полужирный. Именно из-за этого люди и отказываются от embedFonts , ну, или используют классы-менеджеры, которые используют внешние swf-ки со шрифтами. Ибо вес SWF с таким грузом в либе пугает :) |
Никогда не любил связку флеш+шрифты...
|
Полностью с тобой соглашусь.
Стараюсь использовать более или меннее распространенные. Жаль, что flash.text.Font не сделали public метод, скажем load(request:URLRequest), который бы загружал в себя шрифты побайтно... Представьте, как было бы удобно писать .load("fonts/agencycyr.ttf") и евент, чтоб зарегистрировать его после окончания загрузки. Эх... |
to ulik: здесь не используется embedFonts и шрифт несглажен.
to alekslitvinenk: нет, счастья мне так не будет - embedFonts==false вынуждает использовать системные шрифты которые выглядят иначе чем внедренные в других местах проекта. Как правило тоньше, ступенчатей - глобально хуже. А htmlText и embedFonts очень даже совместимы - пока не захочешь сделать ссылкой отдельную картинку. На данный момент мне приходится делать ссылкой ВЕСЬ текстовый блок. Это значит - убеждать клиента что это очень круто и только для него. Но если в самом тексте будут присутствовать ссылки? Отказ от внедренных шрифтов тоже не катит - проект коммерческий и объяснить заказчику почему текст выглядит паршиво не делая из него дурака - невозможно. У меня есть конечно предположения, типа, что когда делается сглаживание текста то визуализация делится на два потока - для сглаживаемых и несглаживаемых объектов и потому в textHtml-потоке между тегами ссылки просто ничего нет. Только что это дает? На каком то иностранном сайте набрел на метод, где автор загружает не jpg а swf, а путь к картинке передает в индентификаторе этого swf. Флэш загружается, по родителю узнает свой идентификатор, парсит его, вычленяя путь к jpg и загружает его в себя. Но метод не только запутанный но и глючный, потому что htmltext перестает понимать размеры этой swf-jpg . Главное - непонятно почему я не могу подвесить событие на саму картинку, получая к ней доступ напрямую - через getImageReference. Этот метод возвращает Loader. Может я путаюсь в этом классе, потому что подвесть клик мышкой на него я не смог. а StyleSheet... она и так используется, но она не сглаживает текст, хоть попроси ее об этом. Проблема, что не смотрят клиенты, сглаженный текст или нет, они вообще не понимают разницы. Просто говорят что выглядит хреново. |
Но вобще-то с embedFonts=true тоже работает, но с глюком:
сначала нажно нажать на картинку, потом отвести указатель мышки от нее и затем подвести и снова нажать... Я думаю, что если похимичить на AS3 то можно как-нибудь замылить этот глюк... Как вариант, можно использовать компонент стороннего разработчика, который парсит и рендерит html... |
| Часовой пояс GMT +4, время: 14:37. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.