Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   помогите разобраться с вектором (http://www.flasher.ru/forum/showthread.php?t=209692)

neonoviiwolf 09.12.2014 15:49

помогите разобраться с вектором
 
Не могу понять ошибку, помогите плиз. Собственно код выдаёт ошибку при попытке добавить объект на сцену
1118: Неявное исправление значения статического типа Object на возможный несвязанный тип flash.display:DisplayObject.

пытаюсь достать объект из пулла, сначала работало, но не мог добавить объект, если пул не хватает, теперь все добавляется, но не могу вывести


Код AS3:

stage.addChild(ver_bullet.vector_bullet[gl_variable.index_bullet]);

///отрывки кода, где всё используется
Код AS3:

ver_bullet: vector_bullet_cl = new vector_bullet_cl()

Код AS3:

package package_cl {
        import package_cl.bullet_cl;
        import package_cl.global_variable_cl;
 
        public class vector_bullet_cl {
                private var gl_variable: global_variable_cl = new global_variable_cl();
                public var vector_bullet: Vector.<Object> = new Vector.<Object>();
 
                public function vector_bullet_cl() {
                        fn_fill_Array_bullet();
                }
 
                private function fn_fill_Array_bullet(): void {
                        var i = gl_variable.max_vector_bullet + 1;
                        while (--i) {
                                var bullet: bullet_cl = new bullet_cl();
                                vector_bullet.push(bullet);
                        }
                }
        }
}

Код AS3:

package package_cl {
 
        public class global_variable_cl {
                public var max_vector_bullet: uint = 50;                //вектор/массив пуль
                public var index_bullet = 1;
        }
}


illuzor 09.12.2014 16:03

Всё ведь ясно написано в тексте ошибки. У вас Object`s в векторе, а вы пытаетесь его на сцену добавить.
Либо установите тип данных вектора на DisplayObject(или что там у вас), либо пользуйтесь приведением типов:
Код AS3:

addChild(myVector[0] as DisplayObject)

И в целом по коду: принято писать имена классов с большой буквы и без подчёркиваний.

neonoviiwolf 10.12.2014 12:21

illuzor спасибо, не знал, что обжект нельзя выводить на экран, заменил на мувиклип, стало всё норм

Добавлено через 6 минут
Что интересно, в начале он выводил на экран, потом я продолжил кодить и вроде ничего особо не менял, кроме возможности увеличения пула и тут он вспомнил, что работать не должен))


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

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