![]() |
Глобальные переменные
Здравствуйте. Я новичок в AS 3. Хотелось бы разобраться как глобально объявить переменную и впоследствие её использовать.
Вычитал здесь http://stackoverflow.com/questions/9...n-actionscript как это можно сделать. Скачал простейший баннер отсюда http://www.web-article.com.ua/2009/a...anner-ssylkoj/ Создал в папке с fla файлом файл Globe.as следующего содержания Код AS3:
Код AS3:
Подскажите, что я делаю не так. Рабочая среда Flash Proffesional CS6 |
Не надо вам глобальные переменные пока. Особенно.
|
Цитата:
А вообще, плюсую к посту котяры. Не надо делать глобальных переменных. |
Можно сделать так
Код AS3:
Код AS3:
|
AlexCooper, в чем прикол ставить статический инициализатор, если можно сразу инициализировать переменные? Выпендреж?
Только лишнюю путаницу создает. |
Цитата:
|
Цитата:
Хотя да.. могу представить себе такую ситуацию. Тогда тем более лучше этого не делать )) к еще большей путанице приведет. |
Цитата:
|
Вы имеете ввиду этот блок?
Код AS3:
Код AS3:
Код AS3:
|
Цитата:
Я знаю что это некрасиво плохо и прочее, но вопрос у меня стоит именно в этом, чтобы иметь глобальную переменную, которая была бы видна и из обработчиков, везде вобщем. Через анонимный пакет так же можно сделать, чтобы даже нигде не нужно было импортов делать. |
Цитата:
Возможно это косяк допущенный адобовцами, но тем не менее. Цитата:
Код AS3:
Код AS3:
Цитата:
Зачем делать так: Код AS3:
Код AS3:
|
Цитата:
Код AS3:
Код AS3:
|
Вот ещё пост http://zanuzawa.blogspot.ru/2012/01/...ipt-3-as3.html Блин такое чувство, что сам Flash Proffesional не подсасывает все эти классы, но вот Intellisence видит же....
|
Цитата:
|
Цитата:
Добавлено через 30 секунд и собственно в чем ужас. Добавлено через 1 минуту век живи - век учись) |
Цитата:
Код AS3:
Зачем передавать какие то уиды туда и ремовы? Это все должно быть уже заточено в функционале хинта. Названия методов - ужасны, 3йной путь , как я уже сказал - бредовый |
это при условии что пользователь управление производит мышью. Мне бы хотелось посмотреть конкретно само "ядро" приложения. То-есть какой Вы используете алгоритм центральным управлением приложений.
|
Цитата:
|
Цитата:
Цитата:
|
Код AS3:
|
СлаваRa - собственно что я и написал
|
Цитата:
Логика получается у Вас разбросана, есть исполняющие методы которые Вы вызываете и там же (где вызывали) обрабатываете информацию, я правильно понял? Добавлено через 1 минуту к примеру если нужно обработать клик пользователя, после чего отправить данные с полей на сервер, принять, закешировать и вывести. |
Цитата:
Код AS3:
|
спасибо, приму к сведению.
Но в чем минус моего решения? Код AS3:
Код AS3:
причем написав GlobalVars мне IDE подсветит возможные обработчики, к примеру пишу GlobalVars.core.logic, метод обработки логики (внешняя связь, GUI, обработка внутренних команд), после чего указываю GlobalVars.core.COMPLAINT_USER, что является командой и любые данные (в приемнике есть свой корректор на входящие данные). То-есть в плане глобальной логики мне нужно запомнить только GlobalVars. Идем дальше. В самом Код AS3:
В чем минус такого решения? |
Цитата:
ООП - есть разумное разграничение логики от данных |
Цитата:
|
AlexCooper, самый большой минус - это инкапсулированность тех функций, которые не должны быть инкапсулированны. Если вы разработчик - одиночка то пофик, что вы творите со своим г/к. Возьмите за пример Drupal 7 и вы поймете разницу. Там есть тоже ядро, модули, виды, хуки, типы данных,темы .
|
Цитата:
2. Свитч в методе logic может разрастись во много сотен строк монотонного кода. 3. Код с упоминанием GlobalVars.core.* станет не переносимым. Например, небольшой пакет из 5-10 классов заточенный выполнять какую-либо конкретную задачу не получится просто вытащить из репозитория и тут же начать использовать в новом проекте. Нужно будет либо удалять GlobalVars.core.*, либо тащить в новый проект GlobalVars. Все зависит конечно от контекста, и возможно в вашем конкретном случае все это оправдано, но как правило концентрация логики в какой-то одной глобальной точке ни к чему хорошему не приводит. |
Цитата:
Цитата:
Цитата:
Цитата:
|
Цитата:
|
Drupal это не язык, а CMF . Написан на PHP. Речь скорее шла об архитектуре этого программного продукта. Используемые там понятия и подходы весьма неплохо использовать при проектировании flash приложений. Сравнивать синтаксис PHP vs AS3 некорректно. Впрочем это уже сделано до Вас...
|
Цитата:
Цитата:
Расскажите лучше, как Вы предлагаете изучать программный продукт без контекста языка, на котором он написан? Придется изучать язык, который не нужен, чтобы понять программный продукт в котором, возможно, содержится что-то полезное. Только вот я сильно сомневаюсь в адекватности получения "неплохих понятий и подходов" с фреймворка для HTTP который, как известно, no-state-saving для флеш-приложения, который вполне себе state-saving. Не находите, что это настолько разное, что ну прям вообще? ) |
Как пишите так и читаю. Не нахожу смысла разводить холивар. Однако замечу - как спроектируешь систему, так потом и код напишешь.
|
Похоже, Вы не поняли меня. Попробую совсем на пальцах: основную мысль, которую я пытался донести, что приложения могут квалифицироваться на:
1) Работа по запросу (PHP работает только когда его пнёт веб-сервер, отработает, выплюнет результат и умрёт). 2) Работа в ограниченном промежутке времени – это как раз флеш-приложения. 3) В идеале, работающие постоянно. (сервера, возможно ОС). Классификация весьма условна и неполна, но суть не в этом. HTTP не помнит что было раньше. Вообще не помнит. Никак. Для этого придуманы сессии, куки, хидден филды. Например, чтобы пользователь оставался залогиненным на сайте, нужно каждый раз при посещении страницы его заново аутентифицировать – скрыто, с помощью, например, куки. Так вот чтобы сделать полноценный фреймворк для веба – нужно опираться на то, что есть. Флеш вполне может держать инстансы в памяти для одного конкретного юзера, поэтому мысль посыл один: авторизовать один раз, запомнить, использовать. Это самое начало, а уже имеем совершенно разные подходы. ПХП должен выплюнуть страницу и умереть. Флеш должен полностью обрабатывать пользовательский ввод. ПХП должен понаделать разных токен-хиден-филдов, чтобы протягивать нужные данные (типа CSRF-токенов), флеш помнит их всегда сам без изврата. При разработке для безопасности на ПХП все данные должны тщательно проверяться и фильтроваться. Флеш живет по принципу "не моя забота, минимальный if, если плохо – сервер скажет". Если капнуть чуть глубже, то можно заметить, что серверные технологии обязаны предусматривать такие сказочные штуки, как шардинг для реляционных баз, который обязан учитываться в архитектуре, потому что деваться некуда (сомневаюсь, что это забота ORM), модульность архитектуры, которую необходимо разрабатывать с возможностью middleware вставок и прочее. На клиенте это совсем сказки, у пользователя один компьютер, а не кластер. Это говорит о некомпетентности попыток сравнивать то, что на серверах с тем, что на клиентах. Безусловно, design patterns и всё с этой оперы – это то что применяют для разработки в любой области и если речь о них – то о них можно почитать о них более конкретно, а не изучая фреймворк написанный на языке сомнительного запаха. Отсюда могу заключить, что Вы – фанат Drupal. |
Я фанат технологичности.
|
Цитата:
За сим я удаляюсь. |
Кто-то может выслать минимальный исходник для демонстрации построение системы в найболее оптимальном подходе в плане разработки. Желательно с централизацией логики.
|
Дык, можно на любом языке писать г/к. Drupal хороший пример развивающегося фреймворка.
Чего нельзя сказать про flash,Flex. AS3 и PHP OOП языки. Механизмы структуирования и отображения контента вполне себе можно сравнивать. Использование сущностей, агрегатирования, рендеринг контента в Drupal пошло бы на пользу и Flash. В Drupal массивы, в AS3 XML. Модулям можно поставить в соответствие RSL. Чем плохо? А Flex вообще изначально неправильно спроектирован. Но это мое мнение. Добавлено через 3 минуты Цитата:
|
Цитата:
Цитата:
Говоря за AS3, здесь есть всё, а не только XML. Удивительно, что Вы вспомнили только его. Цитата:
Вью для флеша... ну как бы сказать. Флеш это вообще – только вью. Цитата:
Кстати, куда круче вместо RSL использовать неэлитный getDefinition ) Цитата:
Цитата:
Цитата:
|
Цитата:
|
| Часовой пояс GMT +4, время: 23:16. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.