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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 21.08.2011, 15:11
cleptoman вне форума Посмотреть профиль Отправить личное сообщение для cleptoman Найти все сообщения от cleptoman
  № 11  
Ответить с цитированием
cleptoman
 
Аватар для cleptoman

блогер
Регистрация: Mar 2007
Сообщений: 1,291
Записей в блоге: 5
Отправить сообщение для cleptoman с помощью ICQ
это очень частный случай получится.
__________________
http://cleptoman.free-lance.ru
achivements: дважды благословлен на воровство. осеяный благодатью

Старый 21.08.2011, 15:24
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 12  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
В haXe Type.createInstance так с помощью кейзов и сделали,
во flex вообще параметры конструктора в ClassFactory не поддерживаются.

Может не париться, работает ведь ?
Да по ресурсам свитч ест копейки по сравнению с созданием массива тем же, работает надежно, т.е. нет причин искать что-то окромя боязни, что вдруг параметров больше окажется.
Ну и исключение по-внятнее в default прописать, чтобы было ясно, когда еще один кейз дописывать.

Старый 21.08.2011, 15:29
JackFromChaos вне форума Посмотреть профиль Отправить личное сообщение для JackFromChaos Найти все сообщения от JackFromChaos
  № 13  
Ответить с цитированием
JackFromChaos
 
Аватар для JackFromChaos

блогер
Регистрация: Jan 2008
Адрес: Донецк
Сообщений: 162
Записей в блоге: 2
Отправить сообщение для JackFromChaos с помощью Skype™
2expl: Да, исключение тут будет в тему, как то не подумал.
А вариант без параметров - не устраивает. Вообще Reflection в данном случае пишу не ради самого Reflection. Просто решил сделать аналог ProperyGrid из .net для as3. Ну и там без рефлексии не получится. Ну а коль скоро начал делать, надо делать нормально.
Хотя реально это функция была нужна только с 0 параметров и с 1 =)
Для простых типов convertFromString(value:String):Object
хорошо подходит new _class(value);
Не панацея, и все же...
__________________
Искренне Ваш, Джек.

Старый 14.03.2012, 13:06
Ne_mesis вне форума Посмотреть профиль Отправить личное сообщение для Ne_mesis Найти все сообщения от Ne_mesis
  № 14  
Ответить с цитированием
Ne_mesis
 
Аватар для Ne_mesis

Регистрация: Jul 2011
Адрес: SPb
Сообщений: 34
Помогите разобраться в данной форме записи:
Код AS3:
private function adder (...rest):void
	{
		for each (var obj: Object in rest)
				{
					var btn: MovieClip = new (obj.def)();
					var _x: int= new (obj._x)();
					btn.x = btn._x;
					var _y: int= new (obj._y)();
					btn.y = btn._y;
					if ('animate' in obj)//Анимировать появление?
					{
						btn.scaleX = 0;
						btn.scaleY = 0;
						Actuate.tween(btn, 3, { scaleX: 1, scaleY:1 });
					}
					addChild(btn);
				}
	}
Вызываю функцию следующим образом:
Код AS3:
adder( { def: Header, _x: stage.stageWidth / 2, _y:stage.stageHeight / 8.3, animate:true } );
Переменная объявлена:
Код AS3:
private var Head: Header= new Header;
Все переменные, передаваемые в функцию различных классов, но по-сути MovieClip.
Actuate - вложенная библиотека, соответственно.

Ошибка выдаётся на этой строке var _x: int= new (obj._x)();
Error #1007: Попытка реализации в объекте, который не является конструктором.

P.S.: Код подкинули, в терминах плохо разбираюсь. Очень нужна функция, для множества переменных.

Старый 14.03.2012, 13:11
Genzo вне форума Посмотреть профиль Отправить личное сообщение для Genzo Посетить домашнюю страницу Genzo Найти все сообщения от Genzo
  № 15  
Ответить с цитированием
Genzo
 
Аватар для Genzo

блогер
Регистрация: Feb 2010
Адрес: MSK
Сообщений: 859
Записей в блоге: 3
Отправить сообщение для Genzo с помощью ICQ Отправить сообщение для Genzo с помощью Skype™
Код AS3:
var _x: int= new (obj._x)();//получается :
var _x: int= new (stage.stageWidth / 2)(); // не правильно
 
var _x: int= int(obj._x);//правильно
__________________
Gamedev != Gaming (http://twitter.com/#!/GenzoDev). Don't forget to [+] if it works.

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

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Код AS3:
var _x: int= new (obj._x)();
Эквивалентно new 5(). 5 - это число, а не конструктор.
Genzo правильно сказал.
Код AS3:
var btn: MovieClip = new (obj.def)();
А тут скобки излишни (первая пара). Что с ними, что без — все одно.

Ну и локальные переменные не принято с "_" начинать.
__________________
тут я

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

Регистрация: Jul 2011
Адрес: SPb
Сообщений: 34
Спасибо, люди добрые! Но всёравно не работает)
Код AS3:
var _x: int= int(obj._x);//Error #1006: value не является функцией.
О чём, собственно, говорит эта строчка? Она создаёт у obj доп-параметр _x?

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

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Ошибка не из этого места. Используйте дебаггер.
Эта строчка берет _x значение из obj, конвертирует его в int и присваивает локальной _x
__________________
тут я

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

Регистрация: Jul 2011
Адрес: SPb
Сообщений: 34
Дебаггер FD так и говорит
Код AS3:
var _x: int= new int (obj._x)(); //[Fault] exception, information=TypeError: Error #1006: value не является функцией.
При этом подсветив оранжевой меткой эту строчку.
Где можно почитать про различные вариации (...rest), и как оформить запрос?
Наверняка накосячил где только возможно)


Последний раз редактировалось Ne_mesis; 14.03.2012 в 14:37.
Старый 14.03.2012, 14:38
Genzo вне форума Посмотреть профиль Отправить личное сообщение для Genzo Посетить домашнюю страницу Genzo Найти все сообщения от Genzo
  № 20  
Ответить с цитированием
Genzo
 
Аватар для Genzo

блогер
Регистрация: Feb 2010
Адрес: MSK
Сообщений: 859
Записей в блоге: 3
Отправить сообщение для Genzo с помощью ICQ Отправить сообщение для Genzo с помощью Skype™
Почему
Код AS3:
var _x: int= new int (obj._x)(); //[Fault] exception, information=TypeError: Error #1006: value не является функцией.
Когда должно быть :
Код AS3:
var _x: int= int(obj._x);
...rest
__________________
Gamedev != Gaming (http://twitter.com/#!/GenzoDev). Don't forget to [+] if it works.

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

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

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


 


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


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