Мне кажется дело в методе appendText. Он обрабатывает стринговый аргумент и стыкует его к уже имеющемуся тексту. Когда же ему скармливают символ "Возврат каретки", то он его внутри себя выполняет и в результате получается пустая строка. Когда же методу передают строковую переменную с символом 13 внутри текста, то он таки делает перенос строки, по сути вставляя и "возврат каретки" и "перевод каретки".
Попробуйте "допечатывать" по два символа за раз и код символа 13 не пропадает! Другого объяснения не могу дать. Может гуру флеша прольют свет на сие. |
Что-то вы тут перемудрили.
1. Зачем таймер стартует сразу же, если при первом же срабатывании он останавливается? 2. Зачем таймер останавливается в начале слушателя on_keyDown? (попробуйте нажать любую не назначенную клавишу во время анимации печати) 3. Опять же, к чему эта копи-паста внутри if else if? К тому же в конце проверка кода клавиши дублируется. У вас на 4 кнопки одно действие, значит и проверка должна быть только одна. Я бы сделал как-то так Код AS3:
|
По первому пункту - в начальной версии у автора печатался какой-то текст (не помню уже что, но типа "нажмите клавишу А,B,C,D). Так и остался старт таймера. Замечание принимается.
По второму пункту - тоже принимается замечание. В моей редакции просто проверку на используемые клавиши надо перенести повыше и удалить повторяющий код. Результат должен быть таким: Код AS3:
В целом ваши замечания правильные и рациональны, но учитывая, что автор в АС3 плохо ещё разбирается, то логика работы "его замыслов" для него более понятна в данном изложении. Впрочем это ему судить и принимать решение. :umnik2: |
@Жень Шень, то, что автор плохо разбирается как раз и стало причиной, почему я "докопался" до его кода. Лучше уж сразу указать на эти типичные ошибки, чтобы в будущем ему было проще обходить такие грабли стороной.
По поводу твоей правки могу сказать, что остановка таймера в начале условного блока с его последующим запуском в конце не имеет смысла. Будь задержка хоть 1мс, слушатель таймера все равно не сработает, пока не выполнится текущий вызов. Даже если на это уйдет гораздо больше времени. Ну и по поводу Цитата:
Код:
если (нажата нужная клавиша) { Код:
setDelayAndFrame(delay:Int, frame:Int):Void; Лучше уж, как ты и заметил, держать все это дело в keysMap Код AS3:
Код AS3:
|
@RedHead90, повторюсь: "замечания правильные и рациональны". Осталось автору досконально разобраться с объектом, ну и заодно с регуляркой. Лично я вник и воспользовался ей на втором году пользования АС. Регулярные выражения удобная вещь, недаром им посвящены целые книги.:D:rtfm:
|
Код AS3:
Для каждой ветки я задал свою скорость печати. Клип dialogs переименовал в way1. Теперь буду плодить клипы с названиями текущих веток событий: way1-1, way1-2, way1-3 и т.д., в которых будут по кадрам выставлены варианты для переходов к последующим веткам. Таким образом собираюсь сделать разветвлённую сеть дерева событий для игры. Сейчас скорость печати задаётся конкретно для каждой ветки. А можно как то задать скорость печати и время паузы с помощью символов в тексте, как это делалось ранее для переносов символом /n? Например, если будет написано: Цитата:
"1. Пойти налево. 3. Пойти вверх. 2. Пойти направо. 4. Пойти вниз." соответственно будут печататься без задержки, то есть моментально. Как это можно реализовать? |
@deepNoise,
1. Тебе нужно написать парсер строк. В кадрах такие вещи не делают. 2. Тебе нужна вменяемая система, управляющая вариантами дейтсвий. Сейчас все построено так, что для каждого вопроса должно быть задано 4 варианта ответов - ни больше ни меньше. Захочешь сделать больше или меньше и все сразу пойдет по... В общем, в кадрах такие вещи не делают. 3. Брать текст из клипов - это вообще бред. И это бред вдвойне, учитывая, что сами клипы вообще по сути не используются. 4. Даже для самого простейшего текстового квеста тебе нужно иметь хотя бы начальный багаж знаний в используемом языке и ООП. С наскоку такие вещи не делают. Прочти хотя бы руководство по AS3 Колина Мука. После него и сам язык поймешь и в ООП вникнешь и тебе уже не захочется возвращаться к коду в кадрах. Даже учитывая то, что flash похоронили (это не точно), AS3 как ЯП очень хорош для новичков. После него легко сможешь изучить любой другой ООП язык. P.S. Чисто из спортивного интереса на коленке набросал, но далее развиваться тем же путем не рекомендую Код AS3:
<speed=40/>Вы пошли налево.<pause=1500/><speed=20/> Куда теперь?<speed=0/> 1. Пойти налево. 3. Пойти вверх. 2. Пойти направо. 4. Пойти вниз. |
Вложений: 1
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Теперь у меня вопрос, можно ли задать имя клипа с помощью значения переменной? То есть есть такая строка: Код AS3:
Код AS3:
|
Цитата:
Цитата:
Цитата:
Цитата:
|
Почитал справку и ничего не понял. Кажется там о том, как создавать дочерние и родительские клипы, но не как создать имя клипа с переменной.
Попробовал так: Код AS3:
Цитата:
|
Часовой пояс GMT +4, время: 23:45. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.