![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Feb 2013
Сообщений: 51
|
есть клип cat, в нем создан экземпляр класса motion и вызвана функция motion1() которая должна перемещать клип
проблема в том что когда в классе в этой ф-ции написано this._x+=10 ; - клип стоит, когда пишу _root.cat._x+=10 клип двигается как решить эту проблему? мне нужно this чтоб я мог вызывать эту ф-цию у любого клипа, а не писать ф-ции для каждого клипа |
|
|||||
|
блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
|
Что-то вообще странное смешение классов и ас1 (onClipEvent (enterFrame)).
dimaMJ, попробуйте тогда без классов, но с кодом в кадрах. И вместо motion1, например, использовать твиннер. О, кажется сообразил, что вы хотите сделать. this указывает на экземпляр класса motion (классы лучше с большой буквы называть), а не на cat. Исправить можно так: class MotionController extends MovieClip implements Motions { private var _owner:MovieClip; private var _speed:Number; public function MotionController( owner:MovieClip ){ _owner = owner; } public function motionToRight(speed:Number){ _speed = speed this.onEnterFrame = function(){ this._owner._x+= _speed; } } } //---------------- // В первом кадре клипа, который должен двигаться: // var motionController:MotionController = new MotionController(this); motionController.motionToRight(10); Вообще вы при каждом обновлении кадра создаете новый motion. Это неправильно. Как дополнительный вариант можно сделать так:
__________________
hauts.ru |
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
dimaMJ, а по-человечески тяжело код оформить?
|
![]() |
![]() |
Часовой пояс GMT +4, время: 03:01. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|