Показать сообщение отдельно
Старый 26.08.2007, 01:59
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 10  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Для первого раза совсем неплохо (впрочем я не верю что это первое может быть первое в смысле проекта). Но я обещал 80 замечаний, так что по закону льва Иван Иваныча должен хотя бы 40 сделать. Так что продолжим, пожалуй. Не забудьте откомментировать, чтобы я мог продолжить - два сообщения подряд на этом форуме не приветствуются, а собирать в одну "портянку" неэстетично.
10) В библиотеке позволяется не только создавать папки для удобной сортировки символов, их можно также переименовывать, давая "говорящие" названия - такие, по которым Вы сразу сможете глазами найти то, что Вам нужно. Ориентироваться в библиотеке, где все называется "Символ 23", просто невозможно. Назовите все по-человечески, можно даже по-русски, и Вам самой станет легче.
11) Зацикливание анимации. Симбол 51 - шкала эквалайзера.
Вы пытались сделать непрерывно двигающиеся столбики, и чтобы они к концу цикла принимали то же положение, что и вначале, Вы скопировали первые кадры в последние. Ошибка в том, что теперь у Вас при непрерывном проигрывании два последовательных кадра - одинаковые. Возникает как бы задержка. Может быть для музыки это означает ритм, но в других ситуациях (а они бывают очень часто) такой номер не пройдет. Что нужно сделать? Сделать теперь предпоследние кадры последними. Выделить их и конвертировать в ключевые, потом удалить последние. Так Вы получите непрерывный цикл. Не спешите это делать, прочитайте п.12
12) Вам нужно, чтобы сначала эти столбики не двигались, а включались когда заиграет музыка. Вы поставили stop() в первом кадре, но тогда столбики играют только один цикл, и стоп Вы удалили, сделав вместо этого еще один - статичный - мувик из одного кадра. Нужно было всего-лишь в последнем кадре поставить команду gotoAndPlay(2);
и цикл стал бы непрерывным. Переделывать предпоследние кадры в последние при этом, понятное дело, не надо.
13) Еще грамотней эту ситуацию решить с помощью скрипта. Помните про коробки и листочек? Сейчас у Вас везде код в коробках. И этот стоп() создает столько проблем именно поэтому. Можно было просто дать всему этому клипу имя (на панели свойств - внизу окна - в правом углу есть поле для ввода этого имени, когда экземпляр находится на стейдже и выделен) - напр. scala_mc. И тогда в кадре (не внутри коробка, а снаружи) пишете scala_mc.stop(); Это его начальное состояние. Когда будет нужно, чтобы столбики забегали, скомандуйте scala_mc.play();
Вот так всё просто. Но кадры-таки придется переделать.
14) Статичный мувик, который я упоминал, Вы создали странным способом. Вы сделали дубликат Символа 51 и удалили все кадры с анимацией, оставив только первые. Можно было затащить Символ 51 на стейдж и нажать Ctrl+B (разбить). Получится простой однослойный шейп из первого кадра. Этот прием Вам сто раз пригодится в будущем.
15) Copyright ©Transmatika.com
Значек © и означает Copyright. Что-то одно здесь лишнее. Иногда пишут Copyrights: ©My Fazer '1993, ©My Mazer '1993 Т.е. в случае перечисления правовладельцев это уместно как заголовок списка, но не более.
16) Этот копирайт у Вас тоже в отдельном мувике. Так и не понял - зачем?
17) Видите какой он ломаный? Вы сделали Динамическое текстовое поле. Это такой тип поля, в котором текст ВЫВОДИТСЯ скриптом динамически. Т.е. подсчитали например, что два арбуза плюс три получается пять - вывели 5 в динамическом текстовом поле. Оно для результатов вычислений. Поскольку неизвестно заранее, какие символы там будут отображаться, а шрифт, содержащий ВСЕ возможные символы, довольно много весит, считается что данные в этом поле будут отображаться тем шрифтом, который есть на компутере пользователя. Поэтому по-умолчанию в таком поле шрифт не сглаживается, т.к. чтобы сгладить букву, флэшу надо преобразовать ее в свой вектор. Такое возможно только в Статических текстовых полях, когда буквы известны до компилляции. Они преобразуются в векторные картинки-шейпы. Именно такой тип поля Вам и надо было выбрать в этом случае. Статический.
18) Однако и в динамическом поле можно показывать сглаженный текст при определенных условиях. Если Вы заранее знаете, что там будут, например, только цифры, Вы можете указать Флэшу включить эти символы в конечный файл, и при компилляции будут созданы 10 шейпов цифр того шрифта, который Вы указали, и только в том начертании, какое Вы указали для этого поля в инспекторе свойств. Т.е. жирное или наклонное - вы не сможете поменять их в ходе работы флэшки. Только один вариант начертания навсегда. Зато на любом компьютере это будет выглядеть одинаково. У меня, например, нет на компе Гельветики.
Для указания, какие символы надо включить для этого поля, нажмите кнопочку Embed (не знаю как в русском переводе назвали).
19) Практически все элементы в Вашем проекте не установлены "в ноль".
Пока двигаешь все руками, это не вызывает особых проблем, разве что картинки могут показываться "битыми", шрифты - ломаными, мелкие векторные рисунки - расплывчатыми, а линии - как будто двойными. У всего этого одна причина - при показе на экране изображение в принудительном порядке становится растровым - состоит из маленьких прямоугольничков-пикселей. Эти пиксели - атомы изображения, и делиться больше уже не могут. Выражение "на пол-пикселя влево" - это юмор такой. Полпикселя не бывает. Но только не во Флэше.
Флэш - векторная программа, предполагающая свободное масштабирование. Здесь координата или ширина прямоугольника 250.17 пикселя - обычное дело. Но если Вы хотите, чтобы все линии в вашей флэшке были четкими, ставьте только целые координаты. Тогда при отображении Флэш не будет подрисовывать к линии еще одну полупрозрачную, пытаясь показать, что она на пол-пикселя левее
20) Выражение "ставить в ноль" означает также, что внутри вложенных клипов основной элемент должен иметь координаты х=0.0 и у=0.0
Причину Вы поймете, как только начнете что-либо двигать не руками, а скриптом. Т.е. когда Вам действительно станут нужны координаты ваших объектов. Если у Вас в клипе my_mc нарисован прямоугольник, Вы само-собой предполагаете, что написав в скрипте my_mc._x = 10, my_mc._y=10, увидите прямоугольник в левом верхнем углу с отступом 10. Однако, если Вы не позаботились поставить этот прямоугольник в ноль внутри клипа my_mc, то увидите его совсем в другом месте (а может и вовсе не увидите) Развивайте привычку ставить в ноль, она - правильная.
__________________
Reality.getBounds(this);