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

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

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

Регистрация: Oct 2010
Сообщений: 69
По умолчанию getDefinitionByName не находит класс

Здравствуйте ещё раз ))

Плз.. ответьте кто-нить, почему такая конструкция работает..
Код AS3:
 
trace( getQualifiedClassName(Level1) ); // "Levels::Level1"
trace( getDefinitionByName( getQualifiedClassName(Level1) ) ); //"[class Level1]"
а вот такая не работает...

Код AS3:
 
trace( getDefinitionByName( "Levels::Level1" ) ); // Ошибка
Error #1065: Переменная Level1 не определена.
at global/flash.utils::getDefinitionByName()

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

Старый 31.08.2011, 12:51
bav вне форума Посмотреть профиль Отправить личное сообщение для bav Найти все сообщения от bav
  № 2  
Ответить с цитированием
bav
 
Аватар для bav

Регистрация: Oct 2010
Сообщений: 1,049
Отправить сообщение для bav с помощью ICQ
Возможно следует указывать имя класса без указания пространства имен?
Код AS3:
trace( getDefinitionByName( "Level1" ) );

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

Регистрация: Oct 2010
Сообщений: 69
Пробовал.. ;(

Старый 31.08.2011, 12:57
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 4  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Класс не вкомпиливается. Где-то напишите просто
Код AS3:
Levels.Level1
Может это пакет? Тогда не ::, а точка.
__________________
тут я

Старый 31.08.2011, 13:00
Dron1564 вне форума Посмотреть профиль Отправить личное сообщение для Dron1564 Найти все сообщения от Dron1564
  № 5  
Ответить с цитированием
Dron1564

Регистрация: Oct 2010
Сообщений: 69
Хмм.. сейчас протрейсил...

Дело в том, что эти классы наследуются от другого "LevelBase" в этом же пакете(Levels ) ...
И он нормально трейсится, без ошибок..

Код AS3:
trace( getDefinitionByName( "Levels::LevelBase" ) ); // [class LevelBase]
Код AS3:
package Levels {
public class Level1 extends LevelBase{
...
    public function Level1(){
        ...
    }
...
}
P.s. точку тоже пробовал.. и "/", и ":"


Последний раз редактировалось Dron1564; 31.08.2011 в 13:04.
Старый 31.08.2011, 13:30
fljot вне форума Посмотреть профиль Отправить личное сообщение для fljot Найти все сообщения от fljot
  № 6  
Ответить с цитированием
fljot

блогер
Регистрация: Jul 2007
Сообщений: 940
Записей в блоге: 3
Level1 не вкомпилен во флешку. Чтобы он был определён (вкомпилирован) либо упомяните его где-то (как сказал кордум — так проще), либо читайте про аргументы компилятора.

Старый 31.08.2011, 13:46
Dron1564 вне форума Посмотреть профиль Отправить личное сообщение для Dron1564 Найти все сообщения от Dron1564
  № 7  
Ответить с цитированием
Dron1564

Регистрация: Oct 2010
Сообщений: 69
Т.е. перечислять все классы так или иначе придётся.... ладно.. всем спасибо...
Сделаю вот так:
Код AS3:
    private function getLvlClass( lvl:String ):Class{
        switch( lvl ){
            case "1": return Level1;
            case "2": return Level2;
            ...
        }
        return null;
    }

Старый 31.08.2011, 15:55
2Sun вне форума Посмотреть профиль Отправить личное сообщение для 2Sun Найти все сообщения от 2Sun
  № 8  
Ответить с цитированием
2Sun
 
Аватар для 2Sun

Регистрация: Mar 2011
Сообщений: 101
Можно просто одной переменной присвоить их все циклом и в конце ее занулить. Этого будет достаточно

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

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
2Sun, чего?
__________________
тут я

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

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Цитата:
2Sun, чего?
Код AS3:
var class:*;
for(var i:int = 0 ; i < 100; i++) class = new Class(Level+'i')
чей то типа того он хотел сказать. тока не помню как там прально писать
__________________
Марк Tween

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

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

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


 


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


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