rustamh
11.06.2009 - 10:41
Здравствуйте! я новичек в action script и новичек на форуме. Короче новичек в квадрате. И мне очень сильно нужна поддержка. Хочу разбираться потихоньку - но зацепиться пока не за что.
Как можно создать функцию, и как ее применить, чтобы она на входе имея заданную строку на выходе давала набирающийся текст. Как примерно мы его видим когда глядим на то, как печатаем - с мигающим курсором. Помимо строки текста, в качестве параметра должны быть скорость набора и параметры текста (цвет скажем, размер букв, шрифт и т.п.)
я пытался самостоятельно разобраться - и единственное до чего смог додуматься - использовать функцию
substring(string.text,_root._currentframe,1)
но она работает, только когда я ее вставлю ее в каждый кадр клипа. Подскажите пожалуйста, как один раз написать скрипт, и сделать так, чтобы он исполнялся на каждом кадре, без его повторного написания внутри кадров. Ну и если можно, помогите пожалуйста задействовать доп. параметры строки и скорость набора.
заранее большое спасибо всем откликнувшимся.
chingachgoog
11.06.2009 - 13:14
Вот такой способ придумал:
Код
function toBlinkText(tf, txt, delay){
// tf - имя текстового поля
// txt - вводимый текст
// delay - задержка в мс
if (!txt.length) return // завершение работы функции
var oldTxt=tf.text
var addLetter=""
var nextStep=txt
var endLetter=oldTxt.charAt(oldTxt.length-1)
if (endLetter=="│"){
oldTxt=oldTxt.slice(0,oldTxt.length-1)
addLetter=" "
} else if (!oldTxt.length || ((!(oldTxt.length%2) && (txt.length%2)) || ((oldTxt.length%2) && !(txt.length%2)))){
addLetter="│"
} else {
addLetter=nextStep.charAt(0)
nextStep=nextStep.slice(1)
if (oldTxt.length){
oldTxt=oldTxt.slice(0,oldTxt.length-1)
}
}
tf.text=oldTxt+addLetter
updateAfterEvent()
setTimeout(arguments.callee, delay, tf, nextStep, delay)
}
toBlinkText(tf,'Моя функция',10)
rustamh
11.06.2009 - 13:45
спасибо большое что откликнулись.
но я даже не знаю куда этот код вставить

создал текстовое поле "динамик текст", назвал его tf , и вставил весь код в первый кадр получается. - но когда запускаю - показывается только вопрос неподвижный
chingachgoog
11.06.2009 - 13:51
rustamh
11.06.2009 - 14:40
странно, но когда пытаюсь открыть файл фла через Macromedia Flash MX - выдает ошибку "неизвестный формат файла".

хотя конечно же фла обычно открываются нормально
chingachgoog
11.06.2009 - 14:53
Не повезло...
У меня CS3 и я и так сохранил под 8-й флеш-редактор. А Flash MX - это 6-й. Поза-поза-позавчерашний день.
Код тоже рассчитан под 8-й флеш-плеер (или под 7-й минимум, т.к. по-моему в 6-м ФП еще не было setTimeout).
rustamh
11.06.2009 - 15:13
хорошо что сказал! это мне товарищ дал дистриб. щас поищу и качну если что!
вот мне счастье улыбнулось, что я познакомился с тобой! даже не ожидал такой помощи от форума если честно!!!
rustamh
11.06.2009 - 15:27
звучит конечно подлизисто - но это правда искренне
chingachgoog
11.06.2009 - 16:03
Обычно я "показываю на удочку, а не даю рыбу" ©
В данном случае же мне самому стало интересно сделать алгоритм "моргания курсора" без передачи дополнительного параметра - текущего статуса моргания (их тут три: знак "│" добавлен, знак "│" заменен на пробел, пробел заменен на следующий символ из задаваемой строки)
rustamh
17.06.2009 - 11:18
Я вчера только нашел MX 8 и опробовал функцию . здоровская. всегда мечтал о такой . но хотел разобраться, запустил отладчик, посмотрел малость - но меня сон срубил наповал (т.к. это после работы было).
Уважаемый chingachgoog , не могли бы вы подписать комменты к коду, пожалуйста, чтобы можно было разобраться полегче?
chingachgoog
17.06.2009 - 15:01
Цитата(rustamh @ 17.06.2009 - 12:18)

не могли бы вы подписать комменты к коду, пожалуйста, чтобы можно было разобраться полегче?
А что конкретно не ясно?
То что в блоке
if?
Это реализация моих получасовых изысканий по определению статуса моргания (см. ниже). Довольно трудно объяснить, т.к. ситуация не простая и осложнена тем, что изначально число букв в строке может быть и четным и нечетным, а работать должно одинаково. В общем не парьтесь с глобальной логикой, лучше просто представьте это как черный ящик, который выдает нужный текущий символ и сконцентрируйтесь на остальном механизме функции.
rustamh
18.06.2009 - 05:11
хорошо. перестану вас мучить и буду лучше читать литературу по теме

и help. кстати в MX 8 просто опупенный хелп, вместе с самоучителем!!
rustamh
24.06.2009 - 04:39
раз уж, chingachgoog, предлагаешь смотреть на функцию как на черный ящик - сделай в функции параметр, который будет указывать, с какой стороны будет мелькать курсор. - справа или слева. И переделай пожалуйста его - чтобы он был прямо в притирку с текстом и постоянно мигал. Как курс на этом форуме например, когда я печатаю сейчас этот текст.
Если нет - тогда сам буду разбираться
chingachgoog
24.06.2009 - 12:35
Цитата(rustamh @ 24.06.2009 - 05:39)

Если нет - тогда сам буду разбираться

"Верной дорогой идете, товарищ." ©
rustamh
25.06.2009 - 04:39
Цитата(chingachgoog @ 24.06.2009 - 12:35)

"Верной дорогой идете, товарищ." ©


наконец-то меня перестали баловать и приучать к самостоятельности!
Цитата
вот мне счастье улыбнулось, что я познакомился с тобой! даже не ожидал такой помощи от форума если честно!!!
chigachgoog, ну ты прям супермэн...
Цитата
даже не ожидал такой помощи от форума если честно!!!
rustamh, тебе повезло, что ты попал сюда, тут действительно очень хорошо помогают
marsoff
24.07.2011 - 14:20
спасибо, перерыл инет нет ничего по такой тематике интересного и промтого как в этом примере
MustLive
25.07.2011 - 23:43
marsoff, всегда пожалуйста.
Наш форум и в том числе chingachgoog всегда рады помочь. И как видно по отзывам и по скачиваниям его примера - этот пример кода для эффекта набирающего текста интересует многих людей

.