Просмотр полной версии : TextFormat.url
schleicher
31.10.2003, 14:22
Ребята! Весьма легко вставит линк в текстовое поле средствами АС, а вот как его потом снять???
TextFormat.url="", или
TextFormat.url = null -
не канают.
Dimonius
31.10.2003, 15:13
а false не пробовал? Это предположение.
schleicher
31.10.2003, 15:22
Похоже, лучшее решение - это в textField.htmlText выхреначивать теги
<A...> </A> - тогда работает, но это несколько неизящный вариант. Можа, в новом флэше это как - нибуть пофиксится?
Dimonius
31.10.2003, 15:24
who knows :rolleyes:
Пушистик
31.10.2003, 18:30
привидите мне привет кода с использованием url;)
а то я не пойму как его юзать...
myFormat.url="http://www.flasher.ru";
чё та не пашет :D
llllllllll
31.10.2003, 18:50
Можеть, что-то вроде этого:
tx = new TextFormat();
tx.url = "http://www.xxx.com";
tx.underline = true;
t.setTextFormat(tx);
onMouseDown = function(){
tx.url = null;
tx.underline = false;
tempText = t.text;
t.htmlText = tempText;
t.setTextFormat(tx);
}
// естественно должно быть текстовое поле t и ченить в него можно накатать :)
Пушистик
31.10.2003, 19:36
я так понял url должно сделать из текста ссылку...или нет? :confused:
llllllllll
31.10.2003, 19:55
Пушистик, ты как всегда прав :)
MerlinTwi
02.11.2003, 22:38
Тоже столкнулся с этой проблемой.
1. В хелпе написано, что надо делать не TextFormat.url = null, а TextFormat.url = ""
2. Это не работает во Flash player 6.0. Если ты установил ссылку, то снять ее уже не получится.
Фиксится весьма интересно. Надо перенести фокус с текстового поля на какой-либо другой элемент, а потом вернуть фокус ввода (я про Selection.setFocus), тогда можно убрать ранее поставленный url
3. Для Flash player 7.0 такой проблемы нет.
schleicher
03.11.2003, 14:02
Попробовал и так. Всё равно, ссылка не снимается. В мануале действительно пишут про "" , но и начал - то я с неё, да эффекта - ноль. Кстати, запускал и в седьмом плейере - проблема остаётся. Ежли у кого есть работающий вариант - скинте с исходником, пожалуйста!
Пушистик
03.11.2003, 16:03
schleicher, да ее можно снять новым TextFormat' ом...
ты кинь свой код сюда! а то я уже задолбался юзать это url...
_root.createTextField("txt", 5, Stage.width/2-50, Stage.height/2-10, 100, 20);
txt.autoSize = 1;
txt.border = 1;
txt.selectable = 0;
txt.text = "Flash";
myFormat = new TextFormat();
myFormat.url="http://www.flasher.ru"; //гыгы...
myFormat.align = "center";
myFormat.font = "Verdana";
myFormat.size = 12;
myFormat.underline=1;
txt.setTextFormat(myFormat);
schleicher
03.11.2003, 16:20
Прикольно, Пушистик!
токо твой скрипт не ставит урл! Хотя по идее, должен!
Или ты это и имел в виду?
schleicher
03.11.2003, 16:46
Вот, файл пушистика с кнопкой, которая должна бы удалять линк. Кстати, чтобы линк робил, надо в текстфиелд добавить
myTextField.html = true;
В этом файле так и есть...
Ещё добавлено текстовое поле, где отображается хтмл - код основного (пушистиковского).
Как видно - кнопка не убирает <a href=....>
В этом - то и проблема!
Кто может решить - сделайте это на примере этих файлов!
Techmaker
03.11.2003, 19:04
нету флы :)
Пушистик
03.11.2003, 19:23
myTextField.html = true;
ну так бы сразу и сказал!!:)
убираем урлу на нажатие пробела!
_root.createTextField("txt", 5, Stage.width/2-50, Stage.height/2-10, 100, 20);
txt.autoSize = 1;
txt.border = 1;
txt.selectable = 0;
txt.text = "Flash";
myFormat = new TextFormat();
myFormat.url="http://www.flasher.ru";
myFormat.align = "center";
myFormat.font = "Verdana";
myFormat.size = 12;
myFormat.underline=1;
txt.html = 1;
txt.setTextFormat(myFormat);
Key.addListener(this);
this.onKeyDown = function() {
if (Key.isDown(Key.SPACE)) {
txt.html = 0;
trace("Урла убрана!");
}
};
Пушистик
03.11.2003, 20:11
а вот и с кнопкой...
Techmaker
04.11.2003, 03:18
2Пушистик
code:
--------------------------------------------------------------------
createTextField("txt",5,Stage.width/2-50,Stage.height/2-10,100,20)
txt.autoSize = true;
txt.border = true;
txt.selectable = false;
txt.text = "flasher";
txt.type="static"
txt.html=true
txt.setTextFormat(new TextFormat(font="Verdana",size=12,Color=0x000000,bold=true,italic=false,underline=true,url="http://www.flasher.ru",target="_blank",align="left",leftMargin=2,rightMargin=2,indent=0,leading=2));
--------------------------------------------------------------------
хе-хе, новый способ использования TextFormat :)
schleicher
04.11.2003, 09:57
НЕ ТО!
Пушистик, ты, канэшно, маладэц!
Но - htmlText должен остаться! надо толко урлу выкинуть, причем из хтмл - кода. Я пишу небольшой менеджер контента для сайта, там надо вставлять ссылки и, в случае надобности, удалять их. При этом другая разметка - должна сохраняться.
Кароч, мне здесь важен не результат во флэше, а хтмл - код.
PS: Шлю сорцы again... Авось дойдут!
Пушистик
04.11.2003, 12:41
Оригинал написал(а) Techmaker
code:
--------------------------------------------------------------------
.....
txt.type="static"
.....
--------------------------------------------------------------------
хе-хе, новый способ использования TextFormat :)
хе-хе, эт чё та новое :D
schleicher, щяс некада! пока могу предложить такой варянт...(конеш, эт фихня...)
приду через пару часов - еще помучаю!
ушёёёлллл....
schleicher
04.11.2003, 12:48
Жду :D
Techmaker
04.11.2003, 13:08
Оригинал написал(а) Пушистик
хе-хе, эт чё та новое :D
:D
Оригинал написал(а) Пушистик
schleicher, щяс некада! пока могу предложить такой варянт...(конеш, эт фихня...)
приду через пару часов - еще помучаю!
ушёёёлллл....
с нулём это не решение - это обманка :) я тоже хотел предложить :) можно ещё "no" использовать :) фигня вобщем :)
надо подумать :) :) :)
MerlinTwi
04.11.2003, 13:23
> schleicher
Как я понимаю, заранее известно и слово и позиция его в тексте с которого нужно убрать URL, тогда вот такой вариант (для твоего файла):
on (release) {
myFormat = new TextFormat();
myFormat.url = "";
myFormat.align = "center";
myFormat.font = "Verdana";
myFormat.size = 12;
myFormat.underline = false;
txt.setNewTextFormat(myFormat);
Selection.setFocus("_root.txt");
Selection.setSelection(0, 5);
txt.replaceSel("Flash");
txt2.text = txt.htmlText;
}
Techmaker
04.11.2003, 13:26
Обманул заразу, старой доброй фуНкЦией :)
юзайте наздоровие :) ;)
Techmaker
04.11.2003, 13:28
2MerlinTwi
в моей функции позиция не так уж и важна :)
Пушистик
04.11.2003, 14:33
2Techmaker, ну это тоже обман...! так не чесна! :D я как раз хотел тож наподобе предложить... :)
я думаю, что это глюк плэера...во чё!:)ну хотя еще помудрю...
а хотя...хто запрещал обманывать флэш? :D
Пушистик
04.11.2003, 14:52
Ё!кажись проблема решена! :D
и без всяких доп. функций! :D
гляньте.... :p
просто надо было юзать setNew TextFormat();... :D
Techmaker
04.11.2003, 14:54
Оригинал написал(а) Пушистик
а хотя...хто запрещал обманывать флэш? :D
нихто :)
schleicher
04.11.2003, 15:06
Ну да! Я и предлагал так сделать сначала (в одном из первых постов), когда стало понятно, что стандартными средствами это не делается.
Спасибо, дорогие!
Видать, тема - то зацепила! :D
Techmaker
04.11.2003, 15:24
Оригинал написал(а) Пушистик
гляньте.... :p
истина всегда где-то рядом :D
Оригинал написал(а) schleicher
Видать, тема - то зацепила! :D
не то слово :D
Пушистик
04.11.2003, 15:35
а я уж думал глюк плэера :D
schleicher
04.11.2003, 16:00
Пушистикам
Твой вариант про setNewTextFormat - катит, трабла в том, чтомне не нужен радикально новый вариант формата (как у тебя), мне нужно взять тот, что есть, и исключить из него урлу. Я сделал именно так, и получил нужный результ! Странно, но вчера я пробовал Ньютекстформат, но эффекта не было. Можа, потому что здесь мы работаем со стилями всего поля, а у себя я юзаю селекшн.
Позже поробую разобраться.
А пока - файло. Вариант пушистика с getTextFormat и выхреначиванием только урлы.
schleicher
04.11.2003, 16:03
Техмейкеру.
Твоя функция прикольна. Но, видать, она старая. Здесь я популяризирую более лаконичный вариант (функция change2)
schleicher
04.11.2003, 16:49
Примерно тот файл, что мне и нужен. То, с чего начинали!
Ставим урлу и убираем!
Как видно - не робит. Работают все свойства текстформата, кроме урлы. Реально работающий вариант - связан с выхлёстыванием тегов из хтмлтекста
Смотрите, советуйте!
Techmaker
04.11.2003, 17:45
Оригинал написал(а) schleicher
Твоя функция прикольна. Но, видать, она старая. Здесь я популяризирую более лаконичный вариант (функция change2)
молодец. рульно мыслишь, а я эту про функцию уже давно забыл :)
Оригинал написал(а) schleicher
А пока - файло. Вариант пушистика с getTextFormat и выхреначиванием только урлы.
getTextFormat(); полезная штука :)
Оригинал написал(а) schleicher
Как видно - не робит. Работают все свойства текстформата, кроме урлы. Реально работающий вариант - связан с выхлёстыванием тегов из хтмлтекста
Смотрите, советуйте!
меня приколола фраза "выхерить теги <A>", но опять же исходник оказался пустым :)
schleicher
05.11.2003, 09:16
XXX Мать! Чо- то, видимо у мене с раром. Стоко раз это западло получается. Видимо, криво я его кракнул!
Сорцы агейн!
гетТекстФормат - мега прикольная штука, особенно, ежели прописывать start & end (see Flashhelp)
Techmaker
06.11.2003, 03:23
опять же, предлогаю обман :)
schleicher
06.11.2003, 09:26
Проблема теперь другая. Возможно, её надо обсуждать в другом месте. То, что убрать урлу средствами текстформата-нельзя, мы это уже давно поняли. Но моя трабла в том, что к примеру есть текст в фиелде, где уже стоит пяток разных урлов, а убрать надо одну - на основании селекшена. (как в ворде) Я ить говорил, что пишу контент - менеджер - сиречь ворд. Может у кого есть функция, которая на основании позиции символа в text вычисляет позицию символа в htmlText.
Это надо, чтобы урлу глушить в заданной позиции.
Techmaker
07.11.2003, 16:42
Оригинал написал(а) schleicher
функция, которая на основании позиции символа в text вычисляет позицию символа в htmlText.
Это надо, чтобы урлу глушить в заданной позиции.
проще будет сделать функцию которая снимает ссылку с определённого выражения
Оригинал написал(а) schleicher
Может у кого есть функция
нет :) но что стоит тебе самому подумать и написать эту специальную функцию? :) я канешна могу написать, как я обычно делаю :) но я хотел бы дать шанс сделать это самому
MerlinTwi
08.11.2003, 03:44
> в фиелде, где уже стоит пяток разных урлов, а убрать надо одну - на основании селекшена.
Я же приводил вариант с селекшеном, пост 04-11-2003 09:23
Пушистик
08.11.2003, 17:20
а хто-нить ваще пробовал создать поле программно, чтобы в нем часть текста была url, а другая нет?а? :rolleyes:
Techmaker
08.11.2003, 17:38
Оригинал написал(а) Пушистик
а хто-нить ваще пробовал создать поле программно, чтобы в нем часть текста была url, а другая нет?а? :rolleyes:
гы :)
-----------------------------------------------------------------
this.createTextField("txt",0,0,0,Stage.width,Stage.height);
txt.type="static";
txt.multiline=true;
txt.border=true;
txt.wordWrap=true;
txt.selectable=false;
txt.html=true;
txt.htmlText='<TEXTFORMAT LEFTMARGIN="2" RIGHTMARGIN="2" LEADING="2"><P ALIGN="LEFT"><FONT FACE="Arial Cyr" SIZE="12" COLOR="#0000FF"><A HREF="http://www.flasher.ru/" TARGET="_blank"><u>www.flasher.ru</u></a></FONT><BR><FONT FACE="Arial Cyr" SIZE="12" COLOR="#0000FF"><A HREF="http://www.vmstudio.com/" TARGET="_blank"><u>www.vmstudio.com</u></a></FONT><BR><FONT FACE="Arial Cyr" SIZE="12" COLOR="#000000"><B>test</B></FONT></P></TEXTFORMAT>';
-----------------------------------------------------------------
schleicher
10.11.2003, 09:42
2 MerlinTwi
Ты имеешь в виду вариант с replaseSel?
Не робит. И как я понял в хелпах - он не катит для хтмл.
Тут проблема и в том, что мы не знаем, что за текст в селекшене. Повторяю задачу: надо с помощью кнопок ставить и снимать урлу не на текстфиелд, а на селекшен. Поставить - то нет проблем, а вот снять не удаётся. Я предложил мочить урлу из хтмлТекст, да вот сел при написании функции соотношения текст и хтмлтекст. То есть, она есть, и даже робит, но захватывает хвост хтмл-я.
function gethtmpos(htm, txtpos) {
//htm = htm.split("</P>").join(chr(32));
c = 0;
if (htm.indexOf("<", c)>txtpos) {
return txtpos;
}
taglen = 0;
last = htm.lastIndexOf(">");
while ((c<last) && (last != -1)) {
begin = htm.indexOf("<", c);
end = htm.indexOf(">", c);
c = end+1;
tag = htm.slice(begin, c);
taglen += tag.length;
//trace("begin="+begin+" end="+c+" tag="+tag+" taglen="+taglen+" ischem="+txtpos);
if (txtpos>(c-taglen)) {
//do nothing;
} else if (txtpos == (c-taglen)) {
continue;
} else {
break;
}
}
return taglen+txtpos-tag.length;
}
Вот. Да ещё и надо учитывать, что в тексте есть символы перевода строки, а в хтмлтексте-их нет.
Понятно, что проще мочить урлов, если известен текст урлы, но простой пример - стоит много разных урлов на одинаковой фразе (типа 'далее->') - дык чо, глушить их всех???
Я опечален! :(
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.