|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Jan 2006
Адрес: Novosibirsk
Сообщений: 353
|
Как правильно использовать getter и setter
Всем привет!
В классе создал мувиклип, прилепил к нему onEnterFrame, но свойства клипа в таком случае не доступны. Как я понял, такие свойства как _x, _y и т.д. нужно получать через get и set. Как правильно обратиться к ним, что бы получить свойства клипа? |
|
|||||
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
Пример в студию.
|
|
|||||
Регистрация: Jan 2006
Адрес: Novosibirsk
Сообщений: 353
|
даже примера нет, смотрел по книгам, но так и не понял что нужно делать, что бы получить результат
грубый пример вот: Как получить в функции engine_mc у this._x свойство _x или любое другое свойство мувика this ?? |
|
|||||
[+4 06.05.14]
|
Вопрос простейший. Тока тут геттер и сеттер не причем.
class modegame{ var SMC; public function createmode(smc){ SMC = smc; // или smc = SMC; забыл уже если честно SMC._x = 100; SMC._y = 100; onEnterFrame = mx.utils.Delegate.create(this,engine_mc); } public function engine_mc(){ trace(SMC._x) } } Последний раз редактировалось in4core; 23.03.2010 в 12:16. |
|
|||||
Регистрация: Jan 2006
Адрес: Novosibirsk
Сообщений: 353
|
Спасибо большое, буду разбираться!
Для вас простейший, а я только начинаю писать в классах |
|
|||||
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
Цитата:
|
|
|||||
Регистрация: Jan 2006
Адрес: Novosibirsk
Сообщений: 353
|
Второй вариант вообще замороченный
думал мое решение на get/set подвязаны, извиняюсь за ошибку. Первый вариант у меня не получилось реализовать. Если рассматривать первый вариант, то SMC, мувиклип? если так, то каким образом он влияет на onEnterFrame? проверил функцию create_bpost_f на trace(this), выдает объект. а у объектов нет onEnterFrame. вот собственно сам код, который я хочу оживить. public function create_bpost_f(container,clip){ trace("this= "+this) bpost = container.attachMovie("bpost_img","bpost",3900) bpost._x = 100; bpost._y = 100; bpost.container = container; bpost.clip = clip; trace("container= "+container) trace("bpost= "+bpost) trace("this._x= "+bpost._x) trace("this._y= "+bpost._y) //bpost.onEnterFrame = bp_engine; bpost.onEnterFrame = mx.utils.Delegate.create(this,bp_engine); } public function bp_engine(){ trace("this= "+this) } clip - это клип, который будет проверяться с созданным клипом на столкновение. Почему так? потому чтоя не могу понять, как в классе сделать так, что бы мувиклипы были доступны всем function в текущем классе. В итоге выдает ошибку. Почему сам клип в функии bp_engine трайсится, а свойства его не доступны? Последний раз редактировалось NoCD; 23.03.2010 в 13:55. |
|
|||||
[+4 06.05.14]
|
Удав- несколько другое? Покажи пример раз так. На сколько я помню последний пример про гет и сет как раз я видел в ливдоках. Вот оттуда этот пример ( тока немного модернизированный под нужды человека).
То Автор : Вообще заведомо нехорошо так классы писать. Все отрибуты давать лучше сначала. А потом тока запускать функции с этимт атрибутами. Код я написал тебе правильный. Просто тебе надо подделать его под себя, и подумать насчет Delegate который как раз нужен в твоем случае. Добавлено через 5 минут вот простейший пример : а как его использовать в твоих нуждах стоит подумать тебе самому class чепочем { var f; function чепочем(set) { f = set; } function получи() { return f; } } var n = new чепочем(333); trace(n.получи()) // 333 Последний раз редактировалось in4core; 23.03.2010 в 15:00. |
|
|||||
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
import mx.utils.Delegate; class Test { /** * Смысл делегата для NoCD */ public function Test(mc:MovieClip) { super(); this.mc = mc; // тут обработчик будет вызывать в области видимости объекта mc this.mc.onEnterFrame = mc_onEnterFrameHandler; // тут в области видимости текущего объекта. Т.е. экземпляра Test this.mc.onEnterFrame = Delegate.create(this, mc_onEnterFrameHandler); // или что не понятно? } private var mc:MovieClip; private function mc_onEnterFrameHandler():Void { trace(this); } /** * Пример get/set для in4core */ private var _width:Number; public function get width():Number { return _width; } public function set width(value:Number):Void { if (_width < 0) return; _width = value; } } Цитата:
Цитата:
|
Часовой пояс GMT +4, время: 11:50. |
|
« Предыдущая тема | Следующая тема » |
|
|