![]() |
|
||||||||||
|
|||||
|
Регистрация: Sep 2011
Сообщений: 524
|
недавно создавал тему, о использовании ООП в AS3 - почитал литературу - все достаточно просто. методы - все ясно. свойства - все ясно.
А вот как быть с событиями? никак не разберусь! Если использовать обычный подход через addeventlistener - то как это применить к классу? ведь этот аппарат вроде приеним к конкретному объекту - к примеру - к готовому movieclip а как это сделать - когда есть абстрактный класс? чтобы получить модель событий подобно c#? |
|
|||||
|
Регистрация: Sep 2011
Сообщений: 524
|
а форум на что? хвастатся уже полученными знаниями?)
|
|
|||||
|
Не все прочитали. Вот этой книжки достаточно, чтобы ответить на все ваши вопросы: http://www.ozon.ru/context/detail/id/4121608/
__________________
Кодинг, багинг, алгоритминг. me @ |
|
|||||
|
Banned
[+1 05.11.11]
[+1 09.08.11] Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
|
Цитата:
АС3 - не си шарп, а самостоятельный язык, со своими средствами выполнения различных задач В ас3 события могут доставляться и приниматься экземплярами классов, которые унаследованы от EventDispatcher |
|
|||||
|
Вы спросите, что не понятно, а лучше поищите по
__________________
http://www.chessmax.ru Последний раз редактировалось Inet_PC; 05.12.2011 в 20:42. |
|
|||||
|
Регистрация: Nov 2009
Сообщений: 300
|
О да, новичкам определенно нужна формула, по которой они смогут найти то, что их интересует
![]() |
|
|||||
|
>> ведь этот аппарат вроде приеним к конкретному объекту - к примеру - к готовому movieclip
а как это сделать - когда есть абстрактный класс? чтобы получить модель событий подобно c#? в AS объекты тоже сами могут 'вещать' события, если об этом речь с шарпом примерно такая аналогия using System; using System.Windows.Forms; using System.Diagnostics; public class MainForm : Form { public MainForm() { SomeClass obj = new SomeClass(); obj.Change += new EventHandler(obj_Change); obj.prop = "test"; } private void obj_Change(object sender, EventArgs e) { Debug.WriteLine("MainForm.obj_Change > target : " + sender + "; prop: " + (sender as SomeClass).prop); // MainForm.obj_Change > target : SomeClass; prop: test } } /////////////// class SomeClass { public event EventHandler Change; string _prop; public string prop { set { _prop = value; Change(this, new EventArgs()); } get { return _prop; } } } package { import flash.display.Sprite; import flash.events.Event; public class Main extends Sprite { public function Main():void { var obj:SomeClass = new SomeClass(); obj.addEventListener(Event.CHANGE, obj_change); obj.prop = "test"; } private function obj_change(e:Event):void { trace( "Main.obj_change > target : " + e.target +"; prop: " + (e.target as SomeClass).prop); //Main.obj_change > target : [object SomeClass]; prop: test } } } /////////////////// import flash.events.*; class SomeClass extends EventDispatcher { protected var _prop:String; public function set prop(value:String):void { _prop = value; dispatchEvent(new Event(Event.CHANGE)); } public function get prop():String { return _prop; } } |
|
|||||
|
Регистрация: Sep 2011
Сообщений: 524
|
не совсем понял зачем еще устанавливать это свойство с dispatchEvent разве недостаточно объявит только
addEventListener и фукнцию обработчик? |
![]() |
![]() |
Часовой пояс GMT +4, время: 22:08. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|