![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Jul 2003
Адрес: Kiev
Сообщений: 77
|
День добрый. В АС3 я пока не очень и нужна ваша помошь, дорогие знатоки.
Ситуация такая - есть поверхность на которую я подтягиваю из библиотеки своего героя игры (hero) и дублирую для тестирования коллизий с поверхностью. private function init(e:Event=null):void { _collisionList=new CollisionList(terrain); _CharsArray=[]; for (var i:uint=0; i<4; i++) {; var chars:hero=new hero ; _CharsArray.push(chars); addChild(chars); _collisionList.addItem(chars); } } _namesArray=["myhero","fish","turbo"]; _xArray=["400","800","1100"]; Теперь я хочу перебирая элементы массива ставить на карту персонажей с соответствующими именами из библиотеки. Но у меня не получаеться ![]() Делаю так: private function init(e:Event=null):void { _collisionList=new CollisionList(terrain); _CharsArray=[]; _namesArray=["myhero","fish","turbo"]; _xArray=["400","800","1100"]; for (var i:uint=0; i<_namesArray.length; i++) { var names=_namesArray[i]; var chars:MovieClip=new names ; chars.x=_xArray[i]; _CharsArray.push(chars); addChild(chars); _collisionList.addItem(chars); } } Подскажите, что прописать, что бы элемент массива считался мувиклипом и подтягивался из библиотеки.
__________________
Immortal |
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
getDefinitionByName()
|
|
|||||
|
Регистрация: Jun 2009
Адрес: Москва
Сообщений: 170
|
я делаю это так:
static private var MovieClipsClassesObject:Object = { };// хранилище всех классов MovieClip'ов использованных в функции newMovieClip static public function newMovieClip(imageName:String):MovieClip //создает MovieClip по имени в ресурсах { var movieClipsClass:Class; if (MovieClipsClassesObject[imageName] != null ) //если в хранилище MovieClip'ов под таким именем уже что-то есть { //trace("requested mc "+imageName+", give out from MovieClipsClassesObject") movieClipsClass = MovieClipsClassesObject[imageName];// выдаем класс MovieClip'а из хранилища }else { //trace("requested new mc "+imageName+", give out from resourcesLoader") movieClipsClass = resourcesLoader.content.loaderInfo.applicationDomain.getDefinition(imageName) as Class; //из resourcesLoader берется описание класса нужного MovieClip'а MovieClipsClassesObject[imageName] = movieClipsClass; //и записывается в хранилище } return new movieClipsClass(); } |
|
|||||
|
стервочка (я мужик)
|
gashhik, не в коем случаи не делайте так как делает mickfallout.
|
|
|||||
|
Регистрация: Jul 2003
Адрес: Kiev
Сообщений: 77
|
фух мозги уже плавлятся.....
private function init(e:Event=null):void { _collisionList=new CollisionList(terrain); _CharsArray=[]; _namesArray=["myhero","fish","turbo"]; _xArray=["400","800","1100"]; for (var i:uint=0; i<_namesArray.length; i++) { var names=_namesArray[i]; //trace(names+" class: "+getQualifiedClassName(names)); var names:Class=getDefinitionByName("myhero") as Class; var chars:MovieClip=new names ; chars.x=_xArray[i]; _CharsArray.push(chars); addChild(chars); _collisionList.addItem(chars); } } Я должен тот класс на который я ссылаюсь как то по особенному обработать?
__________________
Immortal |
|
|||||
private function init(e:Event = null):void { _collisionList = new CollisionList(terrain); _CharsArray = []; _namesArray = ["myhero","fish","turbo"]; _xArray = ["400", "800", "1100"]; var len:int = _namesArray.length; for (var i:int = 0; i < len; i++) { var charClass:Class = getDefinitionByName(_namesArray[i]) as Class; var char:MovieClip = new charClass() ; char.x =_xArray[i]; _CharsArray.push(char); addChild(char); _collisionList.addItem(char); } } Последний раз редактировалось derhab; 27.04.2010 в 01:39. |
|
|||||
|
Регистрация: Jul 2003
Адрес: Kiev
Сообщений: 77
|
Спасибо тебе добрый человек!!1 РАБОТАЕТ :-*
__________________
Immortal |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
А что мешало хранить в массиве классы, а не строки с их именами?
__________________
Reality.getBounds(this); |
|
|||||
|
всмысле хранить в массиве уже созданные экземпляры классов?
типа: Последний раз редактировалось derhab; 27.04.2010 в 02:46. |
|
|||||
|
Регистрация: Jul 2003
Адрес: Kiev
Сообщений: 77
|
Не понимаю...
Как вы это видите в коде? типа так?
__________________
Immortal |
![]() |
![]() |
Часовой пояс GMT +4, время: 03:45. |
|
|
« Предыдущая тема | Следующая тема » |
|
|