Перейти к содержимому


Партнерская программа Kredov

15 ошибок новичка во Flash

#1 mexlis

mexlis
  • Пользователь
  • 107 сообщений
  • Репутация: 0
0

Отправлено 29 Март 2008 - 19:53

. Равенство в условиях обозначается двойным равенством, поэтому код if (i=1){} работать не будет. Правильный вариант кода if (i==1){} Это ошибка многих начинающих программистов.

2. Когда команды пишутся вручную, очень важно соблюдать регистр. Регистр в Flash'е имеет значение! Поэтому команда gotoandplay() не будет работать, правильный вариант: gotoAndPlay().

3. Комментарии. Комментарии в программном коде вводятся знаком двойного слеша //, но действуют только на одну строку, нельзя об этом забывать. На каждой строке нужно повторять этот символ.

4. Команда removeMovieClip() удаляет только те мувиклипы, которые не были созданы вручную, то есть те, которые появились в результате использования команд duplicateMovieClip() и attachMovie().

5. Динамическое текстовое поле. Содержание поля Var не является названием динамического поля. Чтобы обратиться к текстовому полю, нужно сначала ввести имя в его instance name. Использовать в программном коде нужно с определением типа переменной. Например, название поля mytext. Если мы хотим, чтобы изначально в поле mytext было написано "Мой текст". то нужно написать mytext.text = Мой текст. Это один из способов, можно так же в поле Var задать переменную, например myvar, и в кадре написать myvar = "Мой текст".

6. Сцены. Со сценами Flash часто работает некорректно, поэтому лучше содержание каждой сцены включить в отдельный кадр, который находится на главной сцене. Если же вы всё-таки пользуетесь сценами, то учтите, что сцены созданы для облегчения создания анимации, но никак не участи программиста. Кадры, например, нумеруются с начала 1-ой сцены, а не с начала каждой, как принято полагать.

7. Расположение кода. Очень часто новички предпочитают располагать код непосредственно на мувиклипах и кнопках, но вместе с тем, первый признак профессионализма - расположение всего кода в одном кадре. Действительно, располагая код в одном кадре, становятся очевидными все ошибки и недочёты кода, всё исправляется намного быстрее, чем если бы вы искали свой код, разбросанный по разным местам.

8. Обращение к кнопкам. Многие пытаются обратиться к кнопкам, но это абсолютно бесполезно, так как кнопки на это не реагируют. Что же делать? Как же быть? Нужно из мувиклипа сделать кнопку и обращаться к мувиклипу как к кнопку. Для этого нужно использовать такие функции, как onRelease, onRollOver.

9. Злоупотребление onEnterFrame. Эта команда достаточно сильно грузит процессор и тем самым тормозит работу компьютера, так как эта команда выполняет те или иные действия, симулируя проигрывание этого кадра снова и снова. То есть если у вас fps (кадры в секунду) равняется 30, то проверка проводится каждые 30 миллисекунд, а это очень существенно для процессора.

10. Названия переменных, мувиклипов и всего остального. Это достаточно спорный вопрос, но всё же есть какие-то официально принятые ограничения и рекомендуемые. Сначала официальные - нельзя называть мувиклипы именами, которые начинаются с цифры. Нет, назвать вы конечно можете, но обратиться к ним вам не удастся. Это частая ошибка начинающих. Если у вас есть несколько одинаковых мувиклипов, и вы хотите назвать их по порядку (в instance name), то не следует вводить "1", "2", "3". Правильный вариант: "mc1", "mc2", "mc3". Теперь рекомендуемые: называйте переменные осмысленно, или используйте бессмысленные названия переменных, которые имеют что-нибудь общее, а то быстро запутаетесь в переменных, что за что отвечает. Мувиклипы и кнопки рекомендуется называться соответственно my_mc и my_btn. Но повторяю, это достаточно спорный вопрос.

11. Метод attachMovie(). Этот метод переносит программно мувиклип из библиотеки на сцену. У новичков часто возникает проблема с Linkage - имя, которое следует ввести в команде attachMovie(). Часто начинающие программисты считают, что это имя и имя мувиклипа - это одно и то же. Смею вас огорчить, это совершенно разные вещи. В команду attachMovie() нужно ввести имя Linkage мувиклипа. Чтобы его задать, нужно выделить мувиклип в библиотеке и выбрать Правая кнопка - Linkage (Связь), ввести имя и отметить галочками пункты Экспорт в ActionScript и экспорт в 1-ый кадр. Тогда всё будет работать.

12. Различные типы переменных. Часто путаются числовые и текстовые переменные, которые выглядят как первые. Например, если вы с помощью charAt() узнаёте номер мувиклипа для последующих действий, не забудьте после этого использовать команду Number(), чтобы изменить тип переменной на числовой. Из-за этого может не работать весь программный код ролика.

13. Комментарии. Иногда полезно их использовать, чтобы не потеряться в своём коде. Как их вводить мы рассмотрели в пункте 3, сейчас рассмотрим, в каких случаях они необходимы. Например, у вас есть 4 условия вложенных одно в другое. Представляете, сколько будет закрывающих скобок? Если используются такие условные операторы как if, else, if else. Не меньше 10-15 скобок...

14. Команда delete. Очень многие программисты просто не знают про её существование и соответственно никогда не используют, а зря. Эта команда позволяет удалять различные функции, которые уже не могут понадобиться. Например, функция onEnterFrame. Как было сказано выше, она тратит много ресурсов процессора. А если их несколько... Если какие-то из них уже не нужны, то можно их удалить с помощью этой команды. Синтаксис очень простой: delete this.onEnterFrame.

15. Очень распространённая проблема с сохранением каких-либо переменных в файл. Flash поддерживает эту возможность, это недокументированная команда. Сохраняет он данные в специальный файл (не текстовый, а своего разрешения) и оттуда же считывает их. Как использовать SharedObject() (а именно так называется эта команда) мы рассмотрим в одной из ближайших статей. Можно только сказать, что там довольно много различных нюансов... Многие, кто даже знает о существовании этой команды, не могут использовать её корректно.

Мы рассмотрели 15 основных, часто встречающихся ошибок у Flash-программистов. Конечно, есть и многие другие, но эти наиболее распространенные. Учиться всё-таки лучше на чужих ошибках, так по крайней мере быстрее...

Источник:http://www.interface.ru/home.asp?artId=3858

 

 

  • 0

#2 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 29 Март 2008 - 23:03

Спасибо, чейчас как раз начинаю познавать Flash! Учту замечания. :)

Кстати, половину из перечисленных ошибок можно отнести ко многим языкам программирования
  • 0

#3 Limit

Limit
  • Пользователь
  • 38 сообщений
  • Репутация: 0

Отправлено 31 Март 2008 - 20:38

Спасибо, копирнул себе в отдельный файлик! Пригодится...
  • 0

#4 mexlis

mexlis
    Topic Starter
  • Пользователь
  • 107 сообщений
  • Репутация: 0

Отправлено 03 Апрель 2008 - 12:29

А кто-то еще может добавить от себя что-то??Чтобы список был более полным,а тогда уже можно прикрепить тему в раздел.Будет как пособие.
  • 0

#5 Renovatio

Renovatio
  • Пользователь
  • 187 сообщений
  • Репутация: 4

Отправлено 13 Июль 2009 - 17:03

Конечно тут можно кучу всего добавить. Но проще просто купить книгу.

Вообще, очень существенно: всегда к имени объекта добавлять суббикс. Тогда после того как будет введен оператор точка (.), после него вылезет выпадающее меню.
Как применять суффиксы можно прочитать по адресу:
http://www.citforum....h/actionscript/

И вообще, важно знать про прообразование типов, про то, что Array, Number, String и другие это простые классы, а например MovieClip, Object - сложные. Если присвоить переменной другую переменную простого типа, то она просто скопируется, а если сложного - просто произойдет присвоение ссылки на нее.
  • 0

#6 Гость_Serebrjany mir_*

Гость_Serebrjany mir_*
  • Гости

Отправлено 07 Октябрь 2009 - 01:52

спасибо большущщее за ссылочку :
URL менять не пробовал, потому что мультик кэшироваться не будет как и написано. А вот там есть еще ссылочка на сайт Macromrdia, где и написано, что можно использовать параметр FlashVars. Вот так работает:
в тэге object
param name="FlashVars" value="FrameNumber=2"
  • 0

#7 oxya

oxya
  • Пользователь
  • 9 сообщений
  • Репутация: 0

Отправлено 16 Январь 2010 - 00:55

очень поучительно :)
  • 0

#8 bestolloch

bestolloch
  • Пользователь
  • 224 сообщений
  • Репутация: 1

Отправлено 07 Июнь 2010 - 18:41

Спасибо, чейчас как раз начинаю познавать Flash! Учту замечания. :)

Кстати, половину из перечисленных ошибок можно отнести ко многим языкам программирования

А не подскажешь с чего начал и где, просто роюсь на форуме, совсем не плохо отписываешься.)
инетенесно с чего начинают "не полные нули")
  • 0

#9 Renovatio

Renovatio
  • Пользователь
  • 187 сообщений
  • Репутация: 4

Отправлено 07 Июнь 2010 - 21:01

А не подскажешь с чего начал и где, просто роюсь на форуме, совсем не плохо отписываешься.)
инетенесно с чего начинают "не полные нули")



Ну, вообще-то тут http://www.masterweb...ctionscript-23/
есть много с чего можно начать.
  • 0

#10 bestolloch

bestolloch
  • Пользователь
  • 224 сообщений
  • Репутация: 1

Отправлено 16 Июнь 2010 - 12:58

Ну, вообще-то тут http://www.masterweb...ctionscript-23/
есть много с чего можно начать.


Спасибо - глянем.)
  • 0

robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85


Оформление форума – IPBSkins.ru