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

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

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

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,600
Записей в блоге: 17
andrew911, ну и что? Я спросил почему рекомендуют вдруг Object, в теме что Вы дали черном-по белому написано, что не Object. Это как бы нормальное поведение языка без оверлоадинга.

-De-, не совсем понял причем тут гугол, ну да ладно. Приводя к Object мы имеем что-то с базовым типом Object, т.е. всё что угодно - int, String, экземпляр Sprite, ссылка на класс и т.д. Вызывая у него метод - мы вызываем его с динамическим доступом. Если привести что то к типу Class, а потом вызвать так же, динамически: myClass["staticMethod"](); - он тоже вызовется.

Вопрос к умным людям - есть ли возможность в таком раскладе вызвать статический метод без динамического доступа?

Цитата:
Если нигде, кроме как в этой строке "полное.имя.класса" класс не встречается, вероятно, данный класс не включается в флешку. Чтобы этого не произошло, нужно сделать так:
Ошибка вылетит тогда на этапе работы, а не компиляции, вся разница.

Старый 20.10.2010, 14:33
zuxul вне форума Посмотреть профиль Отправить личное сообщение для zuxul Найти все сообщения от zuxul
  № 2  
Ответить с цитированием
zuxul

Регистрация: Dec 2009
Адрес: 59°13′N, 39°54′E
Сообщений: 445
Записей в блоге: 1
Цитата:
Сообщение от Psycho Tiger Посмотреть сообщение
Ошибка вылетит тогда на этапе работы, а не компиляции, вся разница.
О какой ошибке компиляции Вы говорите?

Старый 20.10.2010, 14:45
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 3  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,600
Записей в блоге: 17
Цитата:
Сообщение от zuxul Посмотреть сообщение
О какой ошибке компиляции Вы говорите?
Упс. Не заметил упоминание в коде класса до использования. Всё верно, Ваш пример верный.

Старый 20.10.2010, 18:41
andrew911 вне форума Посмотреть профиль Отправить личное сообщение для andrew911 Найти все сообщения от andrew911
  № 4  
Ответить с цитированием
andrew911

Регистрация: Mar 2007
Сообщений: 545
Цитата:
Сообщение от Psycho Tiger Посмотреть сообщение
andrew911, ну и что? Я спросил почему рекомендуют вдруг Object, в теме что Вы дали черном-по белому написано, что не Object. Это как бы нормальное поведение языка без оверлоадинга.
Да, вы правы, там не Object.
Ответ был для -De-, только почему-то попала и ваша цитата.

Старый 20.10.2010, 17:24
Demoralizator вне форума Посмотреть профиль Отправить личное сообщение для Demoralizator Найти все сообщения от Demoralizator
  № 5  
Ответить с цитированием
Demoralizator

Регистрация: May 2009
Сообщений: 20
всем спасибо за отзывы.

Bgg, -De-
проблема не в Class и Object, иначе было бы implicit coersion. в любом случае проверил - не работает.

zuxul
класс встречается. объекты создаются несколько раз.

вопрос остаётся


Последний раз редактировалось Demoralizator; 20.10.2010 в 18:15.
Старый 20.10.2010, 17:33
Bgg вне форума Посмотреть профиль Отправить личное сообщение для Bgg Найти все сообщения от Bgg
  № 6  
Ответить с цитированием
Bgg
 
Аватар для Bgg

Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
Вот так все работает, проверил:
Код AS3:
var statClass:Object = getDefinitionByName("StatClass") as Object;
statClass.statMethod();
 
или
 
(getDefinitionByName("StatClass") as Class).statMethod();

Старый 20.10.2010, 18:26
Demoralizator вне форума Посмотреть профиль Отправить личное сообщение для Demoralizator Найти все сообщения от Demoralizator
  № 7  
Ответить с цитированием
Demoralizator

Регистрация: May 2009
Сообщений: 20
Bgg
Код AS3:
(getDefinitionByName("StatClass") as Class).statMethod();
Код:
TypeError: Error #1006: statMethod не является функцией.
ps уточнил код в первом сообщении

Старый 23.10.2010, 20:04
Demoralizator вне форума Посмотреть профиль Отправить личное сообщение для Demoralizator Найти все сообщения от Demoralizator
  № 8  
Ответить с цитированием
Demoralizator

Регистрация: May 2009
Сообщений: 20
всё, разобрался. действительно работает через Object. точнее не работает через Class. т.е. главное не задавать тип Class при объявлении.

Код AS3:
var statClass:* = ApplicationDomain.currentDomain.getDefinition("StatClass") as Class;
statClass.statMethod();
 
//или
 
(ApplicationDomain.currentDomain.getDefinition("StatClass")).statMethod();
сразу не получилось, потому что было пару своих косяков

спасибо -De-, Bgg


Последний раз редактировалось Demoralizator; 23.10.2010 в 21:38.
Старый 20.10.2010, 17:41
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 9  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,600
Записей в блоге: 17
Код AS3:
(getDefinitionByName("StatClass") as Class).statMethod();
А у меня не компилируется, оно и логично: у Class нету startMethod. У вас включен strict mode?

Старый 20.10.2010, 17:48
Bgg вне форума Посмотреть профиль Отправить личное сообщение для Bgg Найти все сообщения от Bgg
  № 10  
Ответить с цитированием
Bgg
 
Аватар для Bgg

Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
Угу, не отключал его никогда. FD 3.3.0 + FlexSDK 4

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

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

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


 


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


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