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

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

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

Регистрация: Oct 2008
Адрес: Воронеж
Сообщений: 75
По умолчанию Привести строку к имени объекта. Возможноли?

Доброго времени суток.
Столкнулся со следующей проблемой:
Делаю динамическое попуп окно. Содержимое окна берется из XML файла.
Например в нем находятся имена объектов.
При создании окна мне нужно по этому имени вызвать соответствующий конструктор объекта.
Например
Код AS3:
public function createContent(name_prod : String, src_prod : Sprite, money_prod : uint, gold_money : uint, loadel : uint) : void {
			var name_o : w_name_object = new w_name_object();
			name_o.setName(name_prod);
			name_o.x = w_win.x/2-100;
			name_o.y = w_win.y / 2 - 150 + (60 * loadel);
			this.addChild(name_o);
 
			var obj : Sprite = new src_prod(); //в данной строке ошибка
			obj.x = name_o.x - 100;
			obj.y = name_o.y;
			this.addChild(obj);
		}
Соответственно он выдает ошибку в строке
Код AS3:
var obj : Sprite = new src_prod()
.
Подскажите как правильно сделать?
Заранее благодарю за ответ.

Старый 08.10.2009, 01:44
Kuruki вне форума Посмотреть профиль Отправить личное сообщение для Kuruki Найти все сообщения от Kuruki
  № 2  
Ответить с цитированием
Kuruki

Регистрация: Jan 2008
Сообщений: 669
Код AS3:
getDefinitionByName

Старый 08.10.2009, 02:05
AlexsWulf вне форума Посмотреть профиль Отправить личное сообщение для AlexsWulf Найти все сообщения от AlexsWulf
  № 3  
Ответить с цитированием
AlexsWulf

Регистрация: Oct 2008
Адрес: Воронеж
Сообщений: 75
Спасибо огромное за подсказку.

Но что то я не пойму
пишу
Код AS3:
var obj_name : Class = Class(getDefinitionByName(src_prod));
var obj : Sprite = Sprite(new obj_name());
выдает ошибку
Код:
ReferenceError: Error #1065: Variable o_apple is not defined.
Если пишу
Код AS3:
var obj : Sprite = new o_apple();
то все работает.

Что я не так сотворил?

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

Регистрация: Jun 2005
Сообщений: 636
Так вроде ж по вашему коду src_prod это ж экземпляр Sprite'а?
Вы хотите чтобы метода создал дупликат спрайта?

Код AS3:
var Clazz : Class = src_prod.constructor;
var obj : Sprite = new Clazz ();

Старый 08.10.2009, 16:31
AlexsWulf вне форума Посмотреть профиль Отправить личное сообщение для AlexsWulf Найти все сообщения от AlexsWulf
  № 5  
Ответить с цитированием
AlexsWulf

Регистрация: Oct 2008
Адрес: Воронеж
Сообщений: 75
Вообщем так ничего у меня и не получилось
Код AS3:
public function createContent(name_prod : String, src_prod : String, money_prod : uint, gold_money : uint, loadel : uint) : void {
			var obj_name : Class = getDefinitionByName(src_prod) as Class;
		}
выдает ошибку
Код:
ReferenceError: Error #1065: Variable o_apple is not defined.
Подскажите что не так?

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

Регистрация: Sep 2002
Сообщений: 30,784
Очевидно, класса o_apple нет во флешке.

Старый 08.10.2009, 19:57
Felicast вне форума Посмотреть профиль Отправить личное сообщение для Felicast Найти все сообщения от Felicast
  № 7  
Ответить с цитированием
Felicast
 
Аватар для Felicast

Регистрация: Feb 2008
Адрес: Череповец
Сообщений: 623
Отправить сообщение для Felicast с помощью ICQ
там нужно еще пакет указывать. точно не помню, но просто по названию класса он не найдет
__________________
я могу стать всем, если только захочу

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

Регистрация: Oct 2008
Адрес: Воронеж
Сообщений: 75
Компонент o_apple лежит в библиотеке и прилинкован к классу o_apple.

import main.o_apple;
не помогает, выдает туже ошибку.

если просто писать
Код AS3:
var test: Sprite = new o_apple();
то все работает
Ни как не пойму в чем проблема (

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

Регистрация: Sep 2002
Сообщений: 30,784
Проблема в том, что в коде класс o_apple никак не фигурирует. Импорта недостаточно, должно быть хоть какое-то использование, можно просто написать где-нибудь в коде название класса (не в строке!), чтобы он попал во флешку.

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

Регистрация: Oct 2008
Адрес: Воронеж
Сообщений: 75
Что значит не в строке?

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

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

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


 


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


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