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

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

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

Регистрация: May 2009
Сообщений: 20
По умолчанию вызов статического метода через описание класса

добрый здрасьте.
подскажите пожалуйста, как вызвать статический метод, имея описание класса, полученное через getDefinition.

так не получается.
Код AS3:
//main class
unitClass:Class= ApplicationDomain.currentDomain.getDefinition("unitClass") as Class;
var unit:Unit= new unitClass(); //создаются правильно и не раз
 
unitClass.staticMethod(); //1180: Call to a possibly undefined method staticMethod (при компиляции).
 
var tmp:*= unitClass.toString(); //если так, то
tmp.staticMethod(); //TypeError: Error #1006: value не является функцией. (при выполнении)
ещё момент обнаружил:
если сделать в main class такой метод, то при выполнении выскакивает
Код:
at main class
ReferenceError: Error #1069: Не удалось найти свойство ::staticMethod в class unitClass; отсутствует значение по умолчанию.
спасибо


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

Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
А так:
Код AS3:
var class:Class = getDefinition("className") as Class;
class.method();

Старый 19.10.2010, 21:53
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 3  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
Гугол рекомендует не Class, а Object
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.

Старый 19.10.2010, 22:43
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 4  
Ответить с цитированием
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
Код AS3:
var classRef:Class = getDefinitionByName("className") as Class;
var instance :IMethodable= new classRef();
instance.method();
__________________
Отряд Котовскага

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

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,599
Записей в блоге: 17
Цитата:
Сообщение от -De- Посмотреть сообщение
Гугол рекомендует не Class, а Object
Пруфлинк?

Старый 19.10.2010, 23:38
i.o. вне форума Посмотреть профиль Отправить личное сообщение для i.o. Найти все сообщения от i.o.
  № 6  
Ответить с цитированием
i.o.
 
Аватар для i.o.

Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
Цитата:
Код AS3:
var classRef:Class = getDefinitionByName("className") as Class;
var instance :IMethodable= new classRef();
instance.method();
Котяра, я что-то не понял. Чел вроде статик-метод от класса просил, а ты создаешь экземпляр...

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

Регистрация: Mar 2007
Сообщений: 545
Цитата:
Сообщение от Psycho Tiger Посмотреть сообщение
Пруфлинк?
Цитата:
Сообщение от -De- Посмотреть сообщение
Гугол рекомендует не Class, а Object
http://help.adobe.com/ru_RU/AS3LCR/F...nitionByName()
Код AS3:
var ClassReference:Class = getDefinitionByName("flash.display.Sprite") as Class;
var instance:Object = new ClassReference();
Хотя и public function getDefinitionByName(name:String):Object

А вообще на форуме есть топик про то, как правильно (Object или Class)


Последний раз редактировалось andrew911; 20.10.2010 в 01:19.
Старый 20.10.2010, 01:28
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 8  
Ответить с цитированием
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
Цитата:
Сообщение от i.o. Посмотреть сообщение
Котяра, я что-то не понял. Чел вроде статик-метод от класса просил, а ты создаешь экземпляр...
Да что-то затупил - пролетело мимо моего внимания слово "статик"..
Про статики тогда сходу сказать не могу)
Надо тестить. Сейчас нет никакого флэша под рукой.
но вроде должон 2-й коммент сработать.
__________________
Отряд Котовскага

Старый 20.10.2010, 09:16
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 9  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
Цитата:
Сообщение от Psycho Tiger Посмотреть сообщение
Пруфлинк?
http://www.mail-archive.com/flashcod.../msg42043.html
(http://www.mail-archive.com/flashcod.../msg42058.html)
google as3 getDefinition static
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.

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

Регистрация: Dec 2009
Адрес: 59°13′N, 39°54′E
Сообщений: 445
Записей в блоге: 1
Код AS3:
getDefinitionByName("полное.имя.класса")["metod"]()
Если нигде, кроме как в этой строке "полное.имя.класса" класс не встречается, вероятно, данный класс не включается в флешку. Чтобы этого не произошло, нужно сделать так:
Код AS3:
полное.имя.класса;
getDefinitionByName("полное.имя.класса")["metod"]()
что аналогично:
Код AS3:
полное.имя.класса.metod()
//или
класс.metod()

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

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

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


 


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


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