![]() |
|
||||||||||
|
|||||
|
Регистрация: Feb 2006
Сообщений: 588
|
iNils, ты кому отвечал?
Повторю вопрос. На пальцах пример, есть class в котором реализованна функция, в этой функции еще функция, которая нуждается в свойствах переменных определенных в классе... вот до них достучаться нельзя. Или я просто не умею. Delegate тут не поможет, потому как он обращается к функциям, а мне надо к объектам. Короче, iNils, дай мне свою асю или мыло в личку. Я тебе скину исходник, в котором в Fla все работает, а в классе не хочет. Спасибо |
|
|||||
|
Регистрация: Dec 2006
Сообщений: 230
|
2 __etc ::
Наезд таки несправедлив. Хотя, скорее всего, непонятка происходит.. 1) Код рабочий. О чем в посте и подписано. 2) trace(this) в моем коде отсутствует. 3) Целью публикации моего примера была простая реализация перегрузки события onPress. Для решения этой задачи Делегат не нужен. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Ariel, приведенный пример в дальнейшем приведет к новым вопросам и в, конечном итоге, к выводу, что этот код нерабочий.
1) Рабочий в пределах трейса; 2) Лишь только по этому работает; 3) Плохой пример, абсолютно. В дальнейшем возникнут основательные проблемы, за которые спасибо не скажут. Спорить будем? |
|
|||||
|
Регистрация: Dec 2006
Сообщений: 230
|
2 __etc ::
Любой код должен решать поставленную перед ним задачу. Функционал обработчика события onPress определен не был. Да и спорить с Вами, уважаемый, себе дороже.. Еще плюсов навешаете или забаните под горячую руку.. Скажем, за неуважение к корифеям.. Вообще, создается впечатление, что за увлекательным занятием наказывания юзер0в Вы проводите довольно значительную часть жизни. Народ вылетает с форума только так! |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Цитата:
Надо немножко думать вперед, совсем чуть-чуть. з.Ы. Всё остальное твое написанное — флейм, тянущий на +4 и +5, к сведению. Если уж на то пошло, то бан получают либо совсем безбашенные товарищи, либо рекламщики, коих не так уж и много (я-то знаю). Так что, во избежании лишних квадратных скобочек под никами, сие обсуждение закрыто. Причем тут кривой код приведенного «решения» и какая связь между моей деятельностью, вообще непонятно. Если это аргумент «протев», то смахивает на какую-то совершенно левую отмазку от собственной некомпетентности (ну или просто ляпа, кои возможны у любого человека). Последний раз редактировалось etc; 06.03.2007 в 03:27. |
|
|||||
|
[+1.6 19.12.06]
Регистрация: Nov 2000
Сообщений: 135
|
Да уж.. развели дисскуссию... я всетки вернусь к своим баранам.
Непонимание работы класса Делигейт (не смог я передать ни обьект ни его свойства с помощью этого класса) и поиск по этой теме навели меня на простой пример со ссылкой на обьект. Есть ли какие-то приемущесва/недостатки этого способа по сравнению с использованием класса Делигейт в данном конкретном случае. Или забегая вперёд может что-то возникнет в будущем чего я пока не предусмотрел. вот пример моего исправленного кода: class MyClass {
private var container:MovieClip;
public function MyClass(target:MovieClip) {
container = target.attachMovie("mc", "mc", target.getNextHighestDepth());
var ref:Object = this; // простая ссылка на мой класс
container.btn.onPress = function() {
ref.update(this);
};
}
public function update(obj:Object) {
trace(obj._x);
}
}
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Методы в методе объявляют в AS1, но никак не в AS2/AS3. Почему? Потому что появляются паразитные ссылки, которые приведут к тому, что экземпляр класса не получится удалить. Более того, подобная конструкция очень хрупкая, нарушить области видимости и прийти к полному хаосу можно ещё быстрее. Кроме того, сбивает с толку this, который ссылается не на экземпляр класса, а на кнопку. Ну и в конце-концов, такой код типизировать проблематично.
iNils привел рабочий код. |
|
|||||
|
[+1.6 19.12.06]
Регистрация: Nov 2000
Сообщений: 135
|
Ок, спасибо за разъяснение. У меня наверно последний вопрос, как мне из функции "update" обратится к вызвовшему её клипу, в данном случае "container.btn" ???
Спасибо. |
|
|||||
|
[+1.6 19.12.06]
Регистрация: Nov 2000
Сообщений: 135
|
Правильно ли будет просто сохранить ссылку на етот клип?
import mx.utils.Delegate;
class MyClass {
private var container:MovieClip;
private var btnContainer:MovieClip;
public function MyClass(target:MovieClip) {
container = target.attachMovie("mc", "mc", target.getNextHighestDepth());
btnContainer = container.btn;
btnContainer.onPress = Delegate.create(this, update);
};
}
public function update() {
trace(btnContainer);
}
}
Последний раз редактировалось TbIKBA; 07.03.2007 в 13:58. |
![]() |
![]() |
Часовой пояс GMT +4, время: 22:23. |
|
|
« Предыдущая тема | Следующая тема » |
|
|