Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 02.11.2005, 17:13
Ryumkin вне форума Посмотреть профиль Отправить личное сообщение для Ryumkin Найти все сообщения от Ryumkin
  № 1  
Ответить с цитированием
Ryumkin

Регистрация: Oct 2005
Сообщений: 11
По умолчанию Привязка событий к экземпляру класса

class MyClass
{
var mc:MovieClip;
var a = 5;
function MyClass()
{
mc = ....
mc.onMouseOver = this.onMouseOver;
}
function onMouseOver()
{
trace(this.a);
}
}

выводит undefined... как мне нормально привязать это событие к классу?

Старый 02.11.2005, 18:08
kpa.person вне форума Посмотреть профиль Отправить личное сообщение для kpa.person Найти все сообщения от kpa.person
  № 2  
Ответить с цитированием
kpa.person

Регистрация: 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

Старый 03.11.2005, 00:09
Ryumkin вне форума Посмотреть профиль Отправить личное сообщение для Ryumkin Найти все сообщения от Ryumkin
  № 3  
Ответить с цитированием
Ryumkin

Регистрация: Oct 2005
Сообщений: 11
Цитата:
Сообщение от kpa.person
Либо зарегистрировать мувик как экземпляр класса
Object.registerClass(idOfSymbolFromLibrary, theClass);
А можно поподробнее? А то я уже задолбался: наследую мувиклип, потом оказывается, что он автономный и нельзя ничего вызвать и передать параметры...

Старый 03.11.2005, 00:32
7thsky™ вне форума Посмотреть профиль Отправить личное сообщение для 7thsky™ Найти все сообщения от 7thsky™
  № 4  
Ответить с цитированием
7thsky™
Flash Aксакал
 
Аватар для 7thsky™

Регистрация: 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.
Старый 03.11.2005, 12:42
Ryumkin вне форума Посмотреть профиль Отправить личное сообщение для Ryumkin Найти все сообщения от Ryumkin
  № 5  
Ответить с цитированием
Ryumkin

Регистрация: Oct 2005
Сообщений: 11
Большущее спасибо!!!
И последний вопросик - как убить делегата?

Старый 03.11.2005, 12:46
Ryumkin вне форума Посмотреть профиль Отправить личное сообщение для Ryumkin Найти все сообщения от Ryumkin
  № 6  
Ответить с цитированием
Ryumkin

Регистрация: Oct 2005
Сообщений: 11
я делаю так = null, так можно?

Старый 03.11.2005, 21:33
kpa.person вне форума Посмотреть профиль Отправить личное сообщение для kpa.person Найти все сообщения от kpa.person
  № 7  
Ответить с цитированием
kpa.person

Регистрация: Oct 2004
Адрес: Санкт-Петербург
Сообщений: 17
файл MyClass.as
Код:
class MyClass extends MovieClip {
   public function onRollOver(){
       trace("onRollOver");
   }
}
В fla в либе должен быть символ с linkage id - "myMC".
В _root:
Код:
   import MyClass;
   Object.registerClass("myMC", MyClass);
   this.attachMovie("myMC", "newMyMC", 1);
Смотрим ролловер в оутпуте.

Создать новую тему Ответ Часовой пояс GMT +4, время: 11:15.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 11:15.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.