|
|
|||||
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
синтаксис в AS 2.0
ранее заморачивался немного AS 1.0,седне пробило сел за AS 2.0 выстрадал вот это (сокращенный вариант):
хотелось бы Please услышать комментарии по поводу синтаксиса .Обязательно ли объявлять конструктор,типы пременных и функций? Работает все вроде и без этого. Последний раз редактировалось iNils; 23.10.2006 в 17:26. |
|
|||||
Цитата:
Здесь пишем Цитата:
Цитата:
Последний раз редактировалось miramax; 23.10.2006 в 11:09. |
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
Название метода «moveBehindTheMouse» с точки зрения английского языка неверно.
Свойств _xmouse, _ymouse в классе Movement не существует. Вот так написал бы я (может быть и иначе, но в контексте данной задачи): import mx.utils.Delegate; class Movement { private var target:MovieClip; private var dl:Number; public function Movement() { // пусто, инициализировать пока нечего } private function __followHandler():Void { var x:Number = this.target._x; var y:Number = this.target._y; var xmouse:Number = this.target._parent._xmouse; var ymouse:Number = this.target._parent._ymouse; x += (xmouse-x)/this.dl; y += (ymouse-y)/this.dl; this.target._x = x; this.target._y = y; } public function followTheMouse(mc:MovieClip, dl:Number):Void { this.target = mc; this.dl = dl; this.target.onEnterFrame = Delegate.create(this,this.__followHandler); } public function stopFollow():Void { delete this.target.onEnterFrame; delete this.target; delete this.dl; } } Подробнее расскажу позже, сейчас нужно бежать на работу. з.Ы. miramax, любой класс является наследником Object, поэтому явно указывать на то, что это Object не нужно. |
|
|||||
To __etc далеко не все компилляторы различных языков программирования вставляют за человека наследование по умолчанию (ситуация с метаклассами). То что в AS нужно писать extends Object это правило хорошего стиля, не меннее важное чем название класса с большой буквы.
To udaaff Если ты юзаешь this._x то тебе просто необходимо наследовать MovieClip и не пользоваться статическими переменными и функциями. Вообще инструкция this не работает внутри статической функции. Так же в записи есть ещё одна ошибка, в классе Object свойство _x не определено. Необходимо наследовать MovieClip Последний раз редактировалось miramax; 23.10.2006 в 12:45. |
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
Цитата:
Второе — в твоём случае нужно вызывать конструктор супер-класса. Однако никакого упоминания об этом я не вижу. AS — язык объектный, любой класс является объектом и писать «extends Object» — масло масляное, не говоря уже о том, что сбивает с толку. Компилятор (точнее конвертер в байт-код) не добавляет никаких «extends Object» и правильно делает. Это скорее лишнее действие, которое абсолютно не нужно (не говоря уже о том, что это не правило хорошего стиля, а просто «памятка» автору, что каждый класс — объект), в отличие от именования классов с прописной буквы. з.Ы. miramax, this внутри onEnterFrame ссылается на мувик, поэтому this там необходим, несмотря на то, что написано в стат. функции. С другой стороны, это является стилем AS1, но это уже другая история. Последний раз редактировалось etc; 23.10.2006 в 13:29. |
Часовой пояс GMT +4, время: 15:18. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|