|
|
|||||
Регистрация: Mar 2006
Сообщений: 17
|
Другие основы AS3
Спасибо всем за уроки и статьи, везде вроде всё понятно, но все как-то описывают одно направление - программное рисование, движение и т.п.
А у меня другая простая задача: 1. Т.к. рута как такового не осталось, как объявить общую переменную и потом как к ней обратиться из рзных мест? 2. Как работать с SimpleButton? Как описать обычные события? Наведение, нажатие, отпускание? Неужели для каждой кнопки нужно создавать свой *.as? Вобщем хотел бы для примера реализовать такую задачу: На сцене к примеру 5 кнопок but1, but2 и т.д. и одна кнопка getresult. При нажатии на одну из пяти устанавливается глобалная переменная в своё значение. А при нажатии на getresult делать к примеру trace этого значения. Кто чем поможет? |
|
|||||
Flash Aксакал
Регистрация: Jun 2005
Сообщений: 636
|
Во первых, Вам точно нужен АС3? а АС3 есть еще Runtime Exceptions.
1. Уже обсуждалось так что в поиск 2. В хелп - в справке по этому классу в самом вверху есть пример как использовать без создания класса. Последний раз редактировалось 7thsky™; 26.11.2007 в 12:41. |
|
|||||
Регистрация: Mar 2006
Сообщений: 17
|
Конечно мне нужен AS3.
Хорошо, по глобальным посомтрим, но SimpleButton в примере немного не то описывает. Или может я не так выразился. Кнопки я не программно рисовать хочу, а ручками (как раньше) и потом тамописывают upSprite и т.д. а я хочу понять про upFunction |
|
|||||
Flash Aксакал
Регистрация: Jun 2005
Сообщений: 636
|
ну так и рисуй ручками, во флэше, в чем проблема? создаешь кнопку на таймлайне (лучше две), задаешь имя инстанса, например btn1 и btn2, во фрэйме пишешь
btn1.addEventListener (MouseEvent.CLICK, btnClickHandler, false, 0, true); btn2.addEventListener (MouseEvent.CLICK, btnClickHandler, false, 0, true); function btnClickHandler (evt:MouseEvent):void { var index:int = parseInt (evt.target.name.slice (3)); Global.getInstance ().selectedSection = index; } package { import flash.events.*; public class Global extends EventDispatcher { public static const SELECTED_SECTION_CHANGED:String = 'selectedSectionChanged'; private var _selectedSection:int = -1; public function Global () { } public function get selectedSection ():int { return _selectedSection; } public function set selectedSection (value:int):void { if (_selectedSection != value) { _selectedSection = value; trace ('selectedSection: ' + value); dispatchEvent (new Event (SELECTED_SECTION_CHANGED)); } // end if } private static var instance:Global = null; public static function getInstance ():Global { if (instance == null) { instance = new Global (); } // end if return instance; } } } Последний раз редактировалось 7thsky™; 27.11.2007 в 10:39. |
|
|||||
Регистрация: Mar 2006
Сообщений: 17
|
Спаибо! Чуть позже почитаю, разберусь.
Но меня волнует ещё то, что одни пишут "забываем писать код в кадрах", а другие вот так. |
|
|||||
Flash Aксакал
Регистрация: Jun 2005
Сообщений: 636
|
А не надо быть ортодоксом, код в кадрах - это грех?! По мне так все зависит от проекта, большой проект, много кода, действительно грех.
Маленький проект? почему бы и нет если проект такой что быстро сделал и забыл? Потом не все сразу могут перейти от парадигмы что весь код в кадрах, на - все в классах, все супер пупер заООПено, вариант с заменной _global на класс Global в которым ты декларируешь все общие переменные, сам по себе не плох и прост (и по сущности похожь на модель аппликации, что уже совсем не плохо для начала) |
|
|||||
Регистрация: Mar 2006
Сообщений: 17
|
Блин, да это ж не конечная задача! Я просто на примере хотел понять.
Я знаю как в кадрах это решается... |
Часовой пояс GMT +4, время: 12:48. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|