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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 05.10.2011, 23:23
A1R1NG вне форума Посмотреть профиль Отправить личное сообщение для A1R1NG Найти все сообщения от A1R1NG
  № 21  
Ответить с цитированием
A1R1NG

Регистрация: Oct 2011
Адрес: Москва
Сообщений: 21
Wolsh, точно.. матрицу..!! спасибо)

можешь рассказать подробнее про:
Цитата:
Сообщение от Wolsh Посмотреть сообщение
Создаем новый ele, передавая ему этот id и ссылку на битмап (или клип) (это уже в другом одномерном массиве хранится), а родителей уничтожаем.
как передать ссылку на клип и где(как) этот клип хранить?
и как уничтожить родителей?

Старый 06.10.2011, 00:10
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 22  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Ну если это клипы в библиотеке, линкуешь им классы. В коде создаешь массив из этих классов, так чтобы каждый класс хранился под индексом соответственно id в твоей таблице ("матрице", хм). Допустим ты нарисовал огонь, воду, металл, пар, ржавчину и лаву, дал этим клипам классы Fire, Water, Metal, Steam, Rust, Lava. Ну и массивчик -
Код AS3:
var pictureArray:Array = [Fire, Water, Metal, Steam, Rust, Lava];
Далее двумерный массив взаимодействий (для простоты участок 3х3)
Код AS3:
var mixArray:Array = 
[
    [-1, 3, 5],
    [3, -1, 4],
    [5, 4, -1]
];
Затем ты выводишь на панельку скажем три базовых элемента, которые юзер может смешивать и получить три других. Ну вот он хватает на панельке какой-то элемент и тащит его в лабораторию – ты создаешь новый экземпляр этого элемента из обработчика MOUSE_MOVE (?) - лучше конечно же написать метод-производитель новых элементиков.
Код AS3:
var sub:Element = new Element( (event.currentTarget as Element).id, pictureArray[id] );
stage.addChild(sub);
Вот ты и получил "копию". Когда две такие копии соединятся, берешь их айдишники и проверяешь, что должно родиться -
Код AS3:
var result:int = mixArray[id1][id2];
if(result != -1){
    createSub(result);
} else {
    // тут показываешь хинт мол "не срослось"
}
__________________
Reality.getBounds(this);

Старый 06.10.2011, 01:37
A1R1NG вне форума Посмотреть профиль Отправить личное сообщение для A1R1NG Найти все сообщения от A1R1NG
  № 23  
Ответить с цитированием
A1R1NG

Регистрация: Oct 2011
Адрес: Москва
Сообщений: 21
Цитата:
Сообщение от Wolsh Посмотреть сообщение
Допустим ты нарисовал огонь, воду, металл, пар, ржавчину и лаву, дал этим клипам классы Fire, Water, Metal, Steam, Rust, Lava.
так для каждого клипа(картинки) создавать класс? пустой? или в них-то и прописывать id и прочее?

Старый 06.10.2011, 02:23
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 24  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Это классы "картинок". Им никакой id не надо, они лежат в массиве по "своим" id. Свойство же id нужно классу Element.
__________________
Reality.getBounds(this);

Старый 06.10.2011, 11:39
A1R1NG вне форума Посмотреть профиль Отправить личное сообщение для A1R1NG Найти все сообщения от A1R1NG
  № 25  
Ответить с цитированием
A1R1NG

Регистрация: Oct 2011
Адрес: Москва
Сообщений: 21
а.. их програмно чтоли?)) вот оно чё)

Старый 06.10.2011, 12:38
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 26  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Двумерная таблица поможет, если можно скрещивать только 2 элемента одновременно, но если {a, b, c} != {{a, b}, c} && {a, b, c} != {a, {b, c}}... то всего вариантов решений - !70 если не ошибаюсь (работа всей жизни их описать) Но вообще задача интересная.
__________________
Hell is the possibility of sanity


Последний раз редактировалось wvxvw; 06.10.2011 в 12:41.
Старый 06.10.2011, 13:19
A1R1NG вне форума Посмотреть профиль Отправить личное сообщение для A1R1NG Найти все сообщения от A1R1NG
  № 27  
Ответить с цитированием
A1R1NG

Регистрация: Oct 2011
Адрес: Москва
Сообщений: 21
Цитата:
Сообщение от Wolsh Посмотреть сообщение
Это классы "картинок". Им никакой id не надо, они лежат в массиве по "своим" id.
не понимаю, как этим картинкам(мувиклипам) классы создать?

Старый 06.10.2011, 13:43
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 28  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
wvxvw, я тут уже пытался с другого этажа говорить, меня одернули – задача конкретно имеет пример, и в нем скрещивание только по два.
A1R1NG не надо ничего создавать, надо дать имена классов для символов в библиотеке, чтобы использовать их из кода, Флэш сам создаст классы-пустышки.
__________________
Reality.getBounds(this);

Старый 06.10.2011, 13:47
A1R1NG вне форума Посмотреть профиль Отправить личное сообщение для A1R1NG Найти все сообщения от A1R1NG
  № 29  
Ответить с цитированием
A1R1NG

Регистрация: Oct 2011
Адрес: Москва
Сообщений: 21
как объёкту передать мувиклип из библиотеки? в библиотеке есть мувиклип ele1 у которого прописан класс main.ele1 (создастся автоматически при компиляции)

Код AS3:
package main
{
	import flash.display.*;
    import flash.events.*; 
 
	public class Element extends MovieClip
	{
		public var ElementID:int = 0;
		public var ElementName:String = "name";
 
		public function Element( ID, Name ) {
			this.ElementID = ID;
			this.ElementName = Name;
 
		}
	}
}
Код AS3:
package main
{
	import flash.display.*;
	import flash.events.*;
 
	public class mainClass extends MovieClip
	{
		public var pictureArray:Array = [ele1, ele2, ele3]; 
		var mixArray:Array = 
		[
   			[-1, 3, 5],  //2+2=3 например вода + вода = море
  			[3, -1, 4],  //3+3=5
    		        [5, 4, -1]   //2+3=3+2=4
		];
		public function mainClass()
		{
			var ele1:Element = new Element("1","ele1");
			trace(ele1.ElementID + ele1.ElementName);
			addChild(ele1);
 
		}
	}
}


Последний раз редактировалось A1R1NG; 06.10.2011 в 21:24.
Старый 07.10.2011, 02:00
Silicium вне форума Посмотреть профиль Отправить личное сообщение для Silicium Найти все сообщения от Silicium
  № 30  
Ответить с цитированием
Silicium
 
Аватар для Silicium

Регистрация: Sep 2010
Адрес: Ростов-на-Дону
Сообщений: 369
Цитата:
задача конкретно имеет пример, и в нем скрещивание только по два.
Неа))) Там и более двух элементов можно скрещивать

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

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

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


 


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


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