![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Oct 2005
Сообщений: 11
|
class MyClass
{ var mc:MovieClip; var a = 5; function MyClass() { mc = .... mc.onMouseOver = this.onMouseOver; } function onMouseOver() { trace(this.a); } } выводит undefined... как мне нормально привязать это событие к классу? |
|
|||||
|
Регистрация: Oct 2004
Адрес: Санкт-Петербург
Сообщений: 17
|
Функция onMouseOver работает в области mc, который не имеет св-ва
"a". Поэтому оно undefined. Тебе нужно указать корректную область видимости: class MyClass { var mc:MovieClip; var a = 5; function MyClass() { mc = .... mc.scope = this; mc.onMouseOver = this.onMouseOver; } function onMouseOver() { //trace(this.a); trace(this.scope.a); } } Либо зарегистрировать мувик как экземпляр класса Object.registerClass(idOfSymbolFromLibrary, theClass); Либо использовать ф-цию Iv-a: http://proto.layer51.com/d.aspx?f=1334 |
|
|||||
|
Регистрация: Oct 2005
Сообщений: 11
|
Цитата:
|
|
|||||
|
Flash Aксакал
Регистрация: Jun 2005
Сообщений: 636
|
ЛЮБОЙ объект можно подписать на события мыши простым способой
var obj = new Object ();
obj.onMouseMove = function () {
trace ('move');
}
Mouse.addListener (obj);
Mouse.addListener (this); Потом ты задаешь уже второй раз один и тот же вопрос. mc.onRollOver = Delegate.create (this, __onRollOver); Последний раз редактировалось 7thsky™; 03.11.2005 в 00:34. |
|
|||||
|
Регистрация: Oct 2005
Сообщений: 11
|
Большущее спасибо!!!
И последний вопросик - как убить делегата? ![]() |
|
|||||
|
Регистрация: Oct 2005
Сообщений: 11
|
я делаю так = null, так можно?
|
|
|||||
|
Регистрация: Oct 2004
Адрес: Санкт-Петербург
Сообщений: 17
|
файл MyClass.as
В fla в либе должен быть символ с linkage id - "myMC". В _root: Смотрим ролловер в оутпуте. |
![]() |
![]() |
Часовой пояс GMT +4, время: 17:05. |
|
|
« Предыдущая тема | Следующая тема » |
|
|