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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 29.01.2007, 20:44
  № 1  
Ответить с цитированием
funkyDevil
Guest

Сообщений: n/a
Smile область видимости

К примеру у меня вот такой класс:

Код:
class MyClass(){

  private myTween:Tween;
  private myObject:Object;
 
  public function MyClass()
  {
     myTween = new Tween(бла-бла-бла);
     myTween.onMotionFinished = function()
     {
           trace(myObject);
     } 
  }
}
В результате trace выводит undefined. Т.е. переменные моего класса изнутри обработчика onMotionFinished не видать. А надо.
Объясните, плиз, как в таком случае быть?

Старый 29.01.2007, 21:00
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 2  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Скобки в первой строке лишние. Плюс необходим импорт класса Tween. Плюс внутри функции область видимости другая, нужно использовать Delegate.


Последний раз редактировалось etc; 29.01.2007 в 21:05.
Старый 29.01.2007, 21:25
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 3  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
если нужен доступ к объекту,который твиним, можно без делегирования обойтись: ссылка на него в свойстве obj твина хранится:
Код:
myTween.onMotionFinished = function()
{
   trace(this.obj);
}

Старый 30.01.2007, 00:06
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 4  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Описывать метод в методе как-то криво совершенно

Старый 30.01.2007, 00:39
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 5  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
криво смотрится, ты хотел сказать?
можно подумать что c помощью Delegate прямее..
хотя удобнее, спору нет..

Старый 30.01.2007, 01:17
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 6  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Delegate хотя бы не изменяет область видимости лишний раз. И FDT спокоен.

Старый 30.01.2007, 13:12
  № 7  
Ответить с цитированием
funkyDevil
Guest

Сообщений: n/a
delegate значит говорите....буду капать в этом направлении. Спасибо за наводку

Старый 30.01.2007, 13:44
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 8  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Цитата:
Сообщение от silin
криво смотрится, ты хотел сказать?
Не только, объявление методов внутри другого противоречит ООП. Delegate в купе с EventDispatcher в AS2 приближают к реализации подобного в AS3.

Старый 30.01.2007, 14:32
  № 9  
Ответить с цитированием
funkyDevil
Guest

Сообщений: n/a
С delegate разобрался и пожалел, что не наткнулся на него раньше

Назрел вопросик о ругани FDT.

к примеру есть такой вот код:
Код:
var myClip1:MovieClip;
_root.createEmptyMovieClip("myClip1",1000);
_root.myClip1.createEmptyMovieClip("myClip2",1000);
_root.myClip1.myClip2.onPress = function(){бла-бла-бла}
Дык вот када я описываю обработчик onPress, то FDT ругается на то, что он не знает что такое myClip2. Это вообщем-то естественно, учитывая, что в var я его не прописывал.
Конструкцию var myClip1.myClip2:MovieClip флэш не понимает.
Может есть какие-нибудь другие способы успокоить FDT?

Старый 30.01.2007, 14:43
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 10  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
myClip1 должен быть не MovieClip, а к примеру MyClip1 extends MovieClip
тогда свойство myClip2:MovieClip он сможет иметь на законных основаниях..

а успокоить можно и Flex2, тока я не буду здесь об этом, а то _etc сильно ругается...

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

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

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


 


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


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