Форум 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=209911)

neonoviiwolf 07.01.2015 06:27

Наследование класса
 
Простите меня за глупый вопрос, но я что-о в конец запутался, помогите

пусть есть мувик bullet_mc, я создаю класс, который расширяет мувик, задаю движение и т.п.
Код AS3:

package{
    public class bullet_cl extends bullet_mc{
//какой-то код

Дальше я создаю в новом классе Vector и заполняю bullet_cl
Код AS3:

package{
    public class vector_bullet_cl{
          public var vector_bullet: Vector.<MovieClip> = new Vector.<MovieClip> ();
          private function fn_fill_Array_bullet(): void {
                        var i = 20;
                        while (--i > -1) {
                                var bullet: bullet_cl = new bullet_cl();
                                bullet.in_bullet = i;
                                vector_bullet.push(bullet);
// какой-то код

дальше создаю новый класс и в нём хочу поработать с объектыми вектора, удалить, добавить и т.п.
Код AS3:

package{
      public class Null_bullet_cl {
            private var _vector_bullet: vector_bullet_cl = new vector_bullet_cl();
//какой-то код

так вот, когда я пишу private var _vector_bullet: vector_bullet_cl = new vector_bullet_cl(); создаётся ссылка на этот класс или создаётся копия? Просто если создаётся копия, то это все мои проблемы объясняет и тогда тыкнете мне, как создать ссылку на него

ZackMercury 07.01.2015 07:14

Неудивительно, что вы в конец запутались, ибо в коде каша. Еле понял суть вопроса, которая ваще никак не относится к первым двум приведённым образцам кода.
Ключевое слово new создаёт ни что иное, как экземпляр класса, имя которого следует за ним.
С такими именами классов и переменных не вижу смысла ООП вообще.
Пишите в кадрах, не мучайтесь.

Создать ссылку можно только синглтоном.
Иначе - можно передать ссылку оттуда, где класс инициализируется туда, где ссылка необходима.
Или же наоборот - вытащить там, где ссылка необходима оттуда, где есть экземпляр класса.

neonoviiwolf 07.01.2015 19:08

SuriTheAngel даж не знаю, спасибо за совет, но я его проигнорирую, сам разобрался

rambler 08.01.2015 23:31

bullet.in_bullet = i; ???

neonoviiwolf 09.01.2015 00:35

rambler
Код AS3:

bullet.in_bullet = i; ???

Это случайно затесалось, пока эксперементировал с кодом, что бы решить проблему. Я думал о варианте сделать ещё один вектор, в котором будут индексы мувиков выведенных на экран, что бы только их обрабатывать на возможность столкновения или выхода за пределы сцены

Добавлено через 1 минуту
Сам разобрался, я почему-то был уверен, что мы создаём ссылку, а не экземпляр класса, по этому и получал в итоге не то, что хотел

dimarik 10.01.2015 23:46

Цитата:

Сообщение от neonoviiwolf (Сообщение 1177319)
я почему-то был уверен, что мы создаём ссылку, а не экземпляр класса

Сильная фраза. Ссылка создается достаточно просто.
Код AS3:

var a = b;

У нас "a" теперь создана как ссылка и ссылается она на то, на что ссылается и "b".
Но опять же, это не для простых типов. Некоторые типы не передаются по ссылкам.


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

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