![]() |
|
||||||||||
|
|||||
|
Регистрация: Jul 2009
Сообщений: 47
|
Спасибо за наводку Жень Шень
Может я не до конца понимаю Но ведь, так сказать 'layMP3' у меня всегда разный, смотря какой текст выделен? здесь же ведь нельзя задать его через function Как быть? Добавлено через 9 часов 42 минуты Вот скрипт Жень Шеня, только если теперь выделить текст и нажать на кнопку bold выделенный текст становится подчеркнутым //(в TextField name: txt_txt) и если нажать кнопку send заключается в <a href="http:// + Выделеный текст + " target="_blank">link</a> //(в TextField name: t1_txt) Единственно, как сделать чтобы link(в TextField name: txt_txt) был кликабельный? Вот код (Спасибо Жень Шень) var arr:Array = []; var n = 0; var m = arr.length/2-1; Selection.setFocus("txt_txt"); Selection.setSelection(arr[n], arr[n+1]); // function getIndexs() { if (Selection.getBeginIndex() != -1 && Selection.getEndIndex() != -1) { startIndex = Selection.getBeginIndex(); endIndex = Selection.getEndIndex(); } } function checkFormat(val, startIndex, endIndex) { var obj1 = txt_txt.getTextFormat(startIndex, endIndex); return (obj1[val]); } function doChange(val) { var varBoolen; varBoolen = checkFormat(val, startIndex, endIndex) ? (false) : (true); var obj1 = new TextFormat(); obj1[val] = varBoolen; txt_txt.setTextFormat(startIndex, endIndex, obj1); setSelection(); } txt_txt.onChanged = getIndexs; var mouseListener = new Object(); mouseListener.onMouseUp = getIndexs; Mouse.addListener(mouseListener); // function calculatePositionBold() { arr = []; var changing:Boolean = false; for (var i:Number = 0; i<txt_txt.text.length; i++) { var fmt:TextFormat = txt_txt.getTextFormat(i, i+1); var fmtc = fmt.underline; if (fmtc == 0 && changing == true) { arr.push(i); changing = false; } else if (fmtc != 0 && changing == false) { arr.push(i); changing = true; } } if (changing == true) { arr.push(txt_txt.text.length+1); changing = false; } } //calculatePositionBold(); // btn.onPress = function() { doChange("underline"); }; mb.onPress = function() { t1_txt.text = ""; calculatePositionBold(); ss = txt_txt.text; ss = pars(ss); t1_txt.text = ss+"\n\n\n А это координаты выделения "+arr; }; function pars(ss) { var l = arr.length; var arr2:Array = []; if (arr[0] != 0) { for (i=0; i<l; i += 2) { arr2[i] = ss.substring(i, arr[i]); arr2[i+1] = "<a href = 'http://"+ss.substring(arr[i], arr[i+1])+"'>link</a>"; } trace(i) arr2[i] = ss.substring(arr[i-1],arr[l]); } return (arr2.join("")); } Друзья Флешеры, очень нужна Ваша помощь. Последний раз редактировалось codfelix; 18.09.2009 в 01:23. |
|
|||||
|
Регистрация: Jul 2009
Сообщений: 47
|
Помогите дописать парсер
Вот по этому принципу (код FaMinor) Для кнопки сенд нужно дописать парсер. Принцип его такой: Для формирования строки для отправки создается 2 массива. В первом (arr) записываюся координаты начала применения любых тегов. Во второй (arrBI) - признак набора тегов. Если признак = 1 - то это болд Если признак = 2 - то это италик Если признак = 3 - то это болд и италик Если признак = 0 - теги были закрыты. Останется согласно первого массива разбить весь текст на куски и согласно вторго раставить теги. При этом следует следить когда теги открываются и когда закрываются. Для этого ввести еще 2 переменные в которых фиксировать состояние тегов. Код флешки var arr:Array = []; var arrBI:Array = []; var n = 0; var m = arr.length/2-1; Selection.setFocus("txt_txt"); Selection.setSelection(arr[n], arr[n+1]); // function getIndexs() { if (Selection.getBeginIndex() != -1 && Selection.getEndIndex() != -1) { startIndex = Selection.getBeginIndex(); endIndex = Selection.getEndIndex(); } } function checkFormat(val, startIndex, endIndex) { var obj1 = txt_txt.getTextFormat(startIndex, endIndex); return (obj1[val]); } function doChange(val) { var varBoolen; varBoolen = checkFormat(val, startIndex, endIndex) ? (false) : (true); var obj1 = new TextFormat(); obj1[val] = varBoolen; txt_txt.setTextFormat(startIndex, endIndex, obj1); setSelection(); } txt_txt.onChanged = getIndexs; var mouseListener = new Object(); mouseListener.onMouseUp = getIndexs; Mouse.addListener(mouseListener); // function calculatePositionBold_and_italic() { arr = []; arrBI = []; var changing:Boolean = false; var setFormat:Number = 0; var setFormat1:Number = 0; for (var i:Number = 0; i<txt_txt.text.length-1; i++) { setFormat = 0; var fmt:TextFormat = txt_txt.getTextFormat(i, i+1); var fmtc = fmt.bold; var fmti = fmt.italic; if (fmtc) { setFormat = 1; } if (fmti) { setFormat += 2; } if (setFormat == 0 && changing == true) { arr.push(i); arrBI.push(setFormat); changing = false; } else if (setFormat>0 && setFormat != setFormat1) { arr.push(i); arrBI.push(setFormat); changing = true; } else if (setFormat>0 && changing == false) { arr.push(i); arrBI.push(setFormat); changing = true; } setFormat1 = setFormat; setFormat = 0; } if (changing == true) { arr.push(txt_txt.text.length+1); changing = false; } } function calculatePositionItalic() { arr = []; var changing:Boolean = false; for (var i:Number = 0; i<txt_txt.text.length; i++) { var fmt:TextFormat = txt_txt.getTextFormat(i, i+1); var fmtc = fmt.italic; if (fmtc == 0 && changing == true) { arr.push(i); changing = false; } else if (fmtc != 0 && changing == false) { arr.push(i); changing = true; } } if (changing == true) { arr.push(txt_txt.text.length+1); changing = false; } } btn.onPress = function() { doChange("bold"); }; btni.onPress = function() { doChange("italic"); }; mb.onPress = function() { calculatePositionBold_and_italic(); trace(arr); trace(arrBI); }; function pars(ss) { var l = arr.length; var arr2:Array = []; if (arr[0] != 0) { for (i=0; i<l; i += 2) { arr2[i] = ss.substring(i, arr[i]); arr2[i+1] = "<b>"+ss.substring(arr[i], arr[i+1])+"</b>"; } arr2[i] = ss.substring(arr[i-1], arr[l]); } else { arr2[0] = "<b>"+ss.substring(0, arr[1])+"</b>"; for (i=1; i<l-1; i += 2) { arr2[i] = ss.substring(arr[i]+1, arr[i+1]); arr2[i+1] = "<b>"+ss.substring(arr[i+1], arr[i+2])+"</b>"; } arr2[i] = ss.substring(arr[i-1], arr[l]); } return (arr2.join("")); } function parsi(ss) { var l = arr.length; var arr2:Array = []; if (arr[0] != 0) { for (i=0; i<l; i += 2) { arr2[i] = ss.substring(i, arr[i]); arr2[i+1] = "<i>"+ss.substring(arr[i], arr[i+1])+"</i>"; } arr2[i] = ss.substring(arr[i-1], arr[l]); } else { arr2[0] = "<i>"+ss.substring(0, arr[1])+"</i>"; for (i=1; i<l-1; i += 2) { arr2[i] = ss.substring(arr[i]+1, arr[i+1]); arr2[i+1] = "<i>"+ss.substring(arr[i+1], arr[i+2])+"</i>"; } arr2[i] = ss.substring(arr[i-1], arr[l]); } return (arr2.join("")); } |
![]() |
![]() |
Часовой пояс GMT +4, время: 01:33. |
|
|
« Предыдущая тема | Следующая тема » |
|
|