![]() |
Какое значение для программирования у кадров?
В с++ builder, delphi, visual studio создание программы из нескольких форм выглядит так: создаем нужное количество форм и вывод на экран каждой привязываем к соответствующей кнопке либо событию. Если писать программу, например, игру во флеше, то аналог форм здесь -- кадры? Например, в первом кадре делаем кнопки "Играть", "Настройки", "О программе". И каждой кнопке прописываем по нажатию переходить на нужный кадр: "Играть" - кадр2, "Настройки" - кадр 3 и т.д?
|
а ООП не эффективней будет?
без кода на таймлайне. |
TommyLee
Да во флеши так, хотя есть ещё несколько способов - можно юзать сцены, или создовать каждую отдельную форму в отдельном .swf файле, а затем их грузить, ну а если воспользоваться допалнительными расширениями типо MDM Zinc - сможете создавать настоящие формы, как в делфи. |
Цитата:
Цитата:
|
Кадрами тяжело манипулировать програмно. Лучше использовать какие-нибудь другие дисплей объекты и добавлять / убирать их в списке отображения.
|
TommyLee
Абсолютно верно мыслите, флэш скомпилирует все используемые кадры. wvxvw Тогда может получиться что в одном кадре (форме) будет тонна всякой всячины, это неособо удобно, а атачить всё из библиотеки невсегда хочеца, тем более новичку. В первых творениях лучше использовать способ попрощще. Какие могут возникнуть сложности в управлений кадрами ? |
Цитата:
Цитата:
|
Цитата:
Все-таки лучше через addChild, чем через кадры. |
Таймлайн это по-сути автоматизированый процесс добавления/удаления в дисплей лист. Проблема в том, что у вас не особо есть инстумены повлиять на то, как именно это происходит. Т.е. перешли на второй кадр, потом обратно на первый - а первый кадр взял, и создался весь по новой, кучу памяти угрохал, да еще и никакие даные в нем не сохранились. Для анимации - нормально, чтобы не заморачиваться, а для сколь-нибудь существенного программирования - нет.
|
Буквально на днях редактировал проект у которого в главном таймлайне штук 10 кадров пустых. Это ппц... на главную сцену раскиданы ссылки по всем классам и чуть что вдруг "nextFrame()" или "gotoAndStop(7)" и сиди думай что в этом кадре там случится.
|
2TommyLee
забудьте о кадрах, для того что вы хотите они не нужны... кадры уместны в 99% исключительно для реализации анимации |
Цитата:
Цитата:
|
Кадры - это исторически часть SWF формата, кроме анимации они позволяют загружать клипы порциями. Так опять же исторически сложилось, что код записывается "в кадр", т.е. потенциально в SWF может быть столько же или больше блоков кода, сколько и кадров. Кадр может быть без кода, а код должен быть в каком-то кадре.
С другой стороны, этой структурой не всегда удобно управлять (иземнять содержимое кадра - значит изменять содержание самой программы, чего флеш не умеет). Кроме того, нет штатных инструментов для програмного создания или изменения кадров. На счет addChild - не уверен. Т.как addedToStage например при этом не вызывается. На сколько я себе это представляю в SWF формате есть какая-то специальная запись для того чтобы символ был сразу при создании добавлен в список отображения. Но результат боллее-менее похож. Точно описать механизм работы кадров я не берусь, единственное, что точно знаю, для ключевых кадров создаются фукнции типа frame#() где # номер кадра, и эти функции вызываются когда нужно кадр отобразить. |
Цитата:
|
Нет, это такая структура SWF формата, точно так же, как например в HTML есть <body> или <head>, куда потом можно добавить скрипты, в SWF есть кадры, куда скрипты добавляются.
|
Цитата:
Например, кнопка. У нее таймлайн из трех кадров: не нажата, курсор не наведен -курсор наведен, не нажата - нажата. Получается, во флеше такое можно реализовать 2мя способами: 1. привычный для программиста, основан на изменении свойств объекта в ответ на определенное событие (нажата,отжата и т.д) 2. Рисование в каждом кадре соответствующего состояния. Программирования не вижу. Флеш автоматически преобразует такой анимационный подход в код as? |
Нет, не преобразует в код AS. AS это все-таки скриптовый язык, он может давать команды виртуальной машине, но виртуальная машина может иметь и дополнительный функционал. Проигрывание анимации как раз и будет дополнительным функционалом. Можно попытаться свести до минимума использование "не программных" методов - самому управлять списком отображения, а можно полагаться на "встроенные" механизмы.
Это похоже, на, например, взаимодействие PHP и Apache. Вы можете Apache настроить так, чтобы он сам отдавал определенные файлы с нужными заголовками, а можете все те же файлы отдавать с помощью PHP. И то и другое может быть удобно в конкретной ситуации. |
То есть флеш поддерживает 2 механики работы: реализацию событий кнопки можно запрограммировать кодом, а можно "анимационную"?
О чьем списке отображения вы говорите? Я знаю пока, что он есть у stage, movieclip, button. Вы о stage? |
| Часовой пояс GMT +4, время: 18:04. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.