![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
это очень частный случай получится.
__________________
http://cleptoman.free-lance.ru achivements: дважды благословлен на воровство. осеяный благодатью |
|
|||||
|
В haXe Type.createInstance так с помощью кейзов и сделали,
во flex вообще параметры конструктора в ClassFactory не поддерживаются. Может не париться, работает ведь ? Да по ресурсам свитч ест копейки по сравнению с созданием массива тем же, работает надежно, т.е. нет причин искать что-то окромя боязни, что вдруг параметров больше окажется. Ну и исключение по-внятнее в default прописать, чтобы было ясно, когда еще один кейз дописывать. |
|
|||||
|
2expl: Да, исключение тут будет в тему, как то не подумал.
А вариант без параметров - не устраивает. Вообще Reflection в данном случае пишу не ради самого Reflection. Просто решил сделать аналог ProperyGrid из .net для as3. Ну и там без рефлексии не получится. Ну а коль скоро начал делать, надо делать нормально. Хотя реально это функция была нужна только с 0 параметров и с 1 =) Для простых типов convertFromString(value:String):Object хорошо подходит new _class(value); Не панацея, и все же...
__________________
Искренне Ваш, Джек. |
|
|||||
|
Регистрация: Jul 2011
Адрес: SPb
Сообщений: 34
|
Помогите разобраться в данной форме записи:
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); } } adder( { def: Header, _x: stage.stageWidth / 2, _y:stage.stageHeight / 8.3, animate:true } ); Все переменные, передаваемые в функцию различных классов, но по-сути MovieClip. Actuate - вложенная библиотека, соответственно. Ошибка выдаётся на этой строке var _x: int= new (obj._x)(); Error #1007: Попытка реализации в объекте, который не является конструктором. P.S.: Код подкинули, в терминах плохо разбираюсь. Очень нужна функция, для множества переменных. |
|
|||||
|
__________________
Gamedev != Gaming (http://twitter.com/#!/GenzoDev). Don't forget to [+] if it works. |
|
|||||
|
Регистрация: Jul 2011
Адрес: SPb
Сообщений: 34
|
Спасибо, люди добрые! Но всёравно не работает)
О чём, собственно, говорит эта строчка? Она создаёт у obj доп-параметр _x? |
|
|||||
|
Регистрация: Jul 2011
Адрес: SPb
Сообщений: 34
|
Дебаггер FD так и говорит
var _x: int= new int (obj._x)(); //[Fault] exception, information=TypeError: Error #1006: value не является функцией. Где можно почитать про различные вариации (...rest), и как оформить запрос? Наверняка накосячил где только возможно) Последний раз редактировалось Ne_mesis; 14.03.2012 в 14:37. |
|
|||||
|
Почему
var _x: int= new int (obj._x)(); //[Fault] exception, information=TypeError: Error #1006: value не является функцией. ...rest
__________________
Gamedev != Gaming (http://twitter.com/#!/GenzoDev). Don't forget to [+] if it works. |
![]() |
![]() |
Часовой пояс GMT +4, время: 07:38. |
|
|
« Предыдущая тема | Следующая тема » |
|
|