![]() |
|
||||||||||
|
|||||
|
Регистрация: Mar 2006
Сообщений: 17
|
Спасибо всем за уроки и статьи, везде вроде всё понятно, но все как-то описывают одно направление - программное рисование, движение и т.п.
А у меня другая простая задача: 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, время: 08:23. |
|
|
« Предыдущая тема | Следующая тема » |
|
|