Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 10.10.2012, 22:22
dvrbear вне форума Посмотреть профиль Отправить личное сообщение для dvrbear Найти все сообщения от dvrbear
  № 1  
Ответить с цитированием
dvrbear
[+1.3 06.03.12]
 
Аватар для dvrbear

Регистрация: Oct 2003
Адрес: Moldova, Kishinev
Сообщений: 133
Отправить сообщение для dvrbear с помощью ICQ Отправить сообщение для dvrbear с помощью Skype™
По умолчанию Управление графикой с помощью классов - без addChild()

Есть SWC подключенный к FD.
В SWC зашита графика Main(Мувиклип) в которой вручную добавлены три объекта(Мувика) Clon1, Clon2, Clon3.
Для Main и для каждого из Clon есть AS файлы с их классами.
Main после прелодинга успешно попадает на сцену и ведет себя в соответсвие с Main.as
Мувики (Clon1 2 3) также стоят на своих местах - как я их и расставил внутри Main.

Нигде никаких ошибок не выдается - но почемуто поведение описанное для ClonX не срабатывает

Подозреваю что их необходимо также через код addChild() на сцену - но вопрос в том:
Разве нельзя обойтись без добавления на сцену программно так, чтоб Мувиклипы автоматом подхватывали и исполняли предписамные им классы в библиотеке?

Например у меня есть игра в которой целая куча предметов (ящики, столы, стулья) расставленные мной в ручную для каждой стадии, при этом программно (ВСЛЕПУЮ) расставлять хаотично разбросанные объекты былобы очень сложно
__________________
http://apa-noua.com/portfolio

Старый 11.10.2012, 01:59
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 2  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Это у вас какой то косяк, все должно работать. Но обычно так не делают. Делают вот как : логику описываем отдельно, это значит, что создав в библиотеке символ и задав ему класс, мы должны так же создать отдельно управляемый класс extends ваш графический класс. Но как вы описали, объектов много и кодом добавлять не хочется, тогда придется все описывать в одном классе, - поведение будет нормальным, это 100%.
__________________
Марк Tween

Старый 11.10.2012, 11:11
dvrbear вне форума Посмотреть профиль Отправить личное сообщение для dvrbear Найти все сообщения от dvrbear
  № 3  
Ответить с цитированием
dvrbear
[+1.3 06.03.12]
 
Аватар для dvrbear

Регистрация: Oct 2003
Адрес: Moldova, Kishinev
Сообщений: 133
Отправить сообщение для dvrbear с помощью ICQ Отправить сообщение для dvrbear с помощью Skype™
"управляемый класс extends ваш графический класс"

Вот это уже ближе к делу.
Но при этом нужно будет добавлять на сцену управляющие классы?

Больше интересует даже вопрос как заставить эти Clons начать двигаться, если все они расставлены в ручную ?

И в дагонку немного позаковырестей вопрос - Если все Clonx будут extends некий MoveClon
в котором описано движение и каждый в super(50); передает скорость своего движения.
Вот как тогда прописать в библиотеке?
класс - Clon1 ?
базовый - MoveClon ?
И как всё это дело запустить ?
__________________
http://apa-noua.com/portfolio

Старый 11.10.2012, 11:27
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 4  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
По сути, то, что расставлено в ручную на сцене - это экземпляры класса. Они вполне могут расширять один и тот же класс, если выглядят одинаково. Если по разному, но поведение у них подобно, то да, надо указать базовый, всё верно.

Пишем где-то класс MoveClone в нем описываем движение объектов. Сам этот класс пусть расширяет мувиклип.
Например:
Код AS3:
package {
    import flash.display.MovieClip; 
 
    public class MoveClone extends MovieClip {
         public function MoveClone() {
 
         }
         public function move(posX:Number, posY:Number):void { // этот метод можно будет вызывать у всех клонов у которых базовый класс MoveClone, не зависимо от того к какому классу они принадлежат сами
               this.x = posX;
               this.y = posY;
         }
    }
}
Потом в библиотеке придумываем им названия Clone1, Clone2 , а в базовый класс пишем наш MoveClone

вот, собственно, и всё

Старый 11.10.2012, 11:37
dvrbear вне форума Посмотреть профиль Отправить личное сообщение для dvrbear Найти все сообщения от dvrbear
  № 5  
Ответить с цитированием
dvrbear
[+1.3 06.03.12]
 
Аватар для dvrbear

Регистрация: Oct 2003
Адрес: Moldova, Kishinev
Сообщений: 133
Отправить сообщение для dvrbear с помощью ICQ Отправить сообщение для dvrbear с помощью Skype™
Ну вот у меня так и с сделано.
Есть 3 клона в каждом из них одинаковый мувик с анимацией (клоны закрашены в разный цвет)

Каждому клону прописал в библиотеке класс Clon1, базовый MoveClon (также для 2 3)
В MoveClon присутвует цикл(setInterval) с движением по X
Все клоны лежат внутри Main

Cоздаю SWC, подключаю, добавляю Main на сцену.
Все отображается но в клонах не срабатывает даже trace
как в Clon1 конструкторе так и в MoveClon

На простых примерах никак не могу понять более глубокий принцип работы.
Чтоже и где делаю не так?

Поубирал все лишнее
Clon1 не хочет работать даже с базовым классом MovieClip
Код AS3:
package  
{
	import flash.display.MovieClip;
 
	public class Clon1 extends MovieClip
	{
 
		public function Clon1() 
		{
			this.x = 400;
		}
 
	}
 
}
Вообще беда какаято - всю вину на свою криворукость постоянно беру
а быть может все правильно делаю и подводит Flash или FD

Если не сложно протестируйте на вашем ПО - сдвинется ли синенький клон на 400? (((

подозрения усиливаются - так как с рядом лежащими graphics.fla и ClonClass
Clon1
не хочет добавляться в базовый класс - ClonClass (((
Вложения
Тип файла: zip Clon_123.zip (808.2 Кб, 22 просмотров)
__________________
http://apa-noua.com/portfolio


Последний раз редактировалось udaaff; 11.10.2012 в 12:07.
Старый 11.10.2012, 12:07
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 6  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Используйте композицию и не мучайтесь.

Старый 11.10.2012, 12:08
dvrbear вне форума Посмотреть профиль Отправить личное сообщение для dvrbear Найти все сообщения от dvrbear
  № 7  
Ответить с цитированием
dvrbear
[+1.3 06.03.12]
 
Аватар для dvrbear

Регистрация: Oct 2003
Адрес: Moldova, Kishinev
Сообщений: 133
Отправить сообщение для dvrbear с помощью ICQ Отправить сообщение для dvrbear с помощью Skype™
Ахренеть можно!!!!!
Разобрался!

Вообщем класс в библиотеке Clon1 не должен был присутвовать в раельном Clon1.as
Тупо убил это файл и Flash позволил указать Clon1 с базовым ClonClass

Запустил в FD и Clon1 стал вести себя как предписанно в ClonClass

Надеюсь эта темка пригодится комуто из новичков )))

Добавлено через 3 минуты
Аааа стоп )

А как тогда быть если всетаки требуются 3 клона и каждый должен указать свою скорость?
До того как все заработало предпологал делать так
Код AS3:
package  
{
	public class Clon3 extends ClonClass
	{
		public function Clon3() 
		{
			super(30);
		}
	}
}
или тупо в кадр каждого клона поставить некую переменную - подскажите как правильно это сделать?
__________________
http://apa-noua.com/portfolio

Создать новую тему Ответ Часовой пояс GMT +4, время: 05:05.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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