Модераторы: SoWa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Доступ к root, из экземпляра класса 
:(
    Опции темы
VingradFan
Дата 26.6.2011, 17:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 477
Регистрация: 30.1.2006
Где: Москва

Репутация: 1
Всего: 3



Здравствуйте. Перехожу с АС2 на АС3 со скрипом, поэтому прошу не пинать ногами.

Как сделать так, чтобы экземпляр класса, объявленный в root, создавал в нем мувиклип? Спасибо большое!




Код

public class Ball
 {
  var mainBall:BallSimple = new BallSimple  ;
       public function Ball()
       {
              //Как добавить mainBall в root????????
              //root.addChild(mainBall);
       }
}


Класс BallSimple - наследник MovieClip

Это сообщение отредактировал(а) VingradFan - 27.6.2011, 08:26


--------------------
Когда-нибудь я стану богатым и куплю себе столько Ролтонов, сколько захочу...
PM MAIL WWW ICQ   Вверх
VingradFan
Дата 27.6.2011, 10:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 477
Регистрация: 30.1.2006
Где: Москва

Репутация: 1
Всего: 3



ОМГ 50+ просмотров -  0 ответов!!!


Как из экземпляра импортированного класса обратиться к таймлайну????

Это сообщение отредактировал(а) VingradFan - 27.6.2011, 15:00


--------------------
Когда-нибудь я стану богатым и куплю себе столько Ролтонов, сколько захочу...
PM MAIL WWW ICQ   Вверх
SoWa
Дата 27.6.2011, 16:12 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

Репутация: 1
Всего: 74



В таймлайне у тебя создан экземпляр Ball, так?
В экземпляре Ball создается экземпляр BallSimple. Если оба наследуются от того-же MovieClip, то в Ball пиши что-то типа this.addChild(mainBall)
В таймлайне пиши addChild(ballObject), где ballObject - экземпляр класса Ball.
Изнутри ты сможешь получить, только если в конструкторе передашь this(по сути - root).


--------------------
Всем добра smile
PM MAIL ICQ   Вверх
VingradFan
Дата 27.6.2011, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 477
Регистрация: 30.1.2006
Где: Москва

Репутация: 1
Всего: 3



SoWa, спасибо за ответ. Я сам дошел до вот таких костылей, я так понял, ты их и предлагаешь.

класс:
Код

class Ball extends MovieClip
{
    private var ballMovie:MovieClip = new BallSimple();
    public function Ball()
    {
        this.addChild(ballMovie);
    }
}



таймлайн:
Код

import Ball;
var ballOne=new Ball();
this.addChild(ballOne);



Но это ведь не труъ подход. Мне казалось, труъ подход - это когда я создаю экземпляр класса и он сам все делает без добавления детей в таймлайн. Что-то вроде

Код

import Ball;
var ballOne=new Ball();

и ХОП! на таймлайне шарик, который сам знает, как себя двигать по сцене, как реагировать на нажатия итд
var ballTwo=new Ball();  и еще один.
Или я ошибаюсь?

Это сообщение отредактировал(а) VingradFan - 27.6.2011, 19:14


--------------------
Когда-нибудь я стану богатым и куплю себе столько Ролтонов, сколько захочу...
PM MAIL WWW ICQ   Вверх
VingradFan
Дата 27.6.2011, 16:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 477
Регистрация: 30.1.2006
Где: Москва

Репутация: 1
Всего: 3



SoWa, я понял твою мысль из последнего абзаца! Спасибо! Получилось как-то так:

Класс:
Код

package test
{
    import flash.display.MovieClip;
    public class Ball extends MovieClip
    {
        private var ballMovie:MovieClip = new BallSimple();
        public function Ball(ballParent:MovieClip)
        {
            ballParent.addChild(ballMovie);
        }
    }
}



Таймлайн:

Код

import test.Ball;
var ballOne=new Ball(this);


Тоесть, я передаю ссылку на таймлайн в парамере конструктора. Так?
То, что я и хотел. Экземпляр класса сам добавляет шарик на таймлайн.

В итоге, какой подход лучше?????

Это сообщение отредактировал(а) VingradFan - 27.6.2011, 16:38


--------------------
Когда-нибудь я стану богатым и куплю себе столько Ролтонов, сколько захочу...
PM MAIL WWW ICQ   Вверх
SoWa
Дата 28.6.2011, 05:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

Репутация: 1
Всего: 74



Я рад, что у тебя получилось реализовать оба подхода )

С точки зрения архитектуры программы - первый лучше. Т.е. твоим шариком должна управлять некая логика. Сам по себе шарик логикой не обладает. Это из концепции MVC и здравого смысла. Например, логика может быть заложена в поле для шариков.
Что касается второго подхода - со ссылкой на this - я еще не исследовал, что там получается по поглощению памяти... Мне второй подход не нравится как технически, так и эстетически.
Но если ты всеж желаешь, чтобы шарик сам собой управлял - оставляй второй. Только потестируй, загони на таймлайн 500 шариков и посмотри на ресурсы приложения.


--------------------
Всем добра smile
PM MAIL ICQ   Вверх
VingradFan
Дата 28.6.2011, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 477
Регистрация: 30.1.2006
Где: Москва

Репутация: 1
Всего: 3



Во втором варианте получилось так: 100 экземаляров класса кушают 12 MB памяти.
Это много или мало?


--------------------
Когда-нибудь я стану богатым и куплю себе столько Ролтонов, сколько захочу...
PM MAIL WWW ICQ   Вверх
SoWa
Дата 28.6.2011, 17:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

Репутация: 1
Всего: 74



Это нормально. Я узнал, ссылки передаются - с памятью проблем не возникнет.
В общем, делай как тебе удобно smile Но я бы логику вынес из объектов.


--------------------
Всем добра smile
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | ActionScript 3 | Следующая тема »


 




[ Время генерации скрипта: 0.0835 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.