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

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

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

Регистрация: Dec 2007
Сообщений: 6
По умолчанию MovieClip между двумя другими MovieClip

Знаю звучит както странно, однако проблема есть а как решить её я незнаю...
Если коротко то у нас есть ХМЛ файл откуда читается определенные данные
[<it name="Piter" cordx="100" cordy="50" type="megapolis" fromx="50" fromy="20" />]
Программа вырисовывает все города и прочее. Так вот проблема в том что надо еще эти города соединить "железной дорогой" которая пойдет к объекту с именем name и кординатами cordx и cordy из кординат fromx и fromy... Пробывал сначала просто линиями соединять но запутался в depth'e >< Потом решил, что всетаки железная дорого ftw и начал мудрить с всякими atan'ами и прочее, и как вы видите безрезультатно.
вот код с линиями... если кто знает как сделать с MovieClipом буду очень признателен...
Код:
my_xml = new XML();
my_xml.ignoreWhite = true;

my_xml.onLoad  = function(ok) {
	if (ok) {
		parovozik();
	}
};
my_xml.load("data3.xml");
parovozik = function() {
	var len = my_xml.childNodes[0].childNodes[0].childNodes.length;
	for (var i = 0; i<len; i++) {
		_root.createEmptyMovieClip("gr"+i, i+1);
		var gr = _root["gr"+i];
		var color = 0xFF0000;
		var tp = my_xml.childNodes[0].childNodes[0].childNodes[i].attributes.type;
		var xx = my_xml.childNodes[0].childNodes[0].childNodes[i].attributes.cordx;
		var yy = my_xml.childNodes[0].childNodes[0].childNodes[i].attributes.cordy;
		var fromx = my_xml.childNodes[0].childNodes[0].childNodes[i].attributes.fromx;
		var fromy = my_xml.childNodes[0].childNodes[0].childNodes[i].attributes.fromy;
		gr.attachMovie (my_xml.childNodes[0].childNodes[0].childNodes[i].attributes.type,"gr"+i,{_x:0, _y:0});
		gr._x = xx;
		gr._y = yy;
		this.createEmptyMovieClip("gg"+i,i+i+1);
		var gg = _root["gg"+i];
		gg.lineStyle(2,color);
		gg.moveTo(fromx,fromy);
		gg.lineTo(gr._x,gr._y);
		gr.createTextField("tf", 1,-12, 9, 80, 20);
		with (gr.tf) {
			autoSize = "middle";
			text = my_xml.childNodes[0].childNodes[0].childNodes[i].attributes.name;
		}
	}
};


Последний раз редактировалось iNils; 06.12.2007 в 02:46.
Старый 06.12.2007, 10:15
CorC вне форума Посмотреть профиль Отправить личное сообщение для CorC Найти все сообщения от CorC
  № 2  
Ответить с цитированием
CorC
 
Аватар для CorC

Регистрация: Jul 2006
Адрес: Земля>Россия>Вологда
Сообщений: 3,056
Отправить сообщение для CorC с помощью ICQ Отправить сообщение для CorC с помощью MSN Отправить сообщение для CorC с помощью Skype™
Рисовать ЖД лайнами в клипе который под всеми остальными, т.е. не создавать gg каждый раз, а один на всех...
__________________
"We Are The Champions My Friends!" Queen

Старый 06.12.2007, 13:21
MurziQ вне форума Посмотреть профиль Отправить личное сообщение для MurziQ Найти все сообщения от MurziQ
  № 3  
Ответить с цитированием
MurziQ

Регистрация: Dec 2007
Сообщений: 6
эээм... тока у нас ведь тогда получиться что соединяться только два города. о_0 вообщем проблема все еще актуальна... ><

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

Регистрация: Oct 2007
Сообщений: 255
Записей в блоге: 1
а что мешает соединить N городов?

Старый 06.12.2007, 15:41
MurziQ вне форума Посмотреть профиль Отправить личное сообщение для MurziQ Найти все сообщения от MurziQ
  № 5  
Ответить с цитированием
MurziQ

Регистрация: Dec 2007
Сообщений: 6
что мешает? банальное не знание как это сделать...

Старый 06.12.2007, 15:58
amesqit вне форума Посмотреть профиль Отправить личное сообщение для amesqit Найти все сообщения от amesqit
  № 6  
Ответить с цитированием
amesqit
 
Аватар для amesqit

Регистрация: Oct 2007
Сообщений: 255
Записей в блоге: 1
В общем нужно
1) чуточку почитать про класс XML
Так же, как я понимаю, задача в конечном итоге, не в просто в рисовании, следовательно
2) нужно построить граф, а точнее его матричное представление.
Имея представление того, что с чем соединяется, можно без проблем соединить вершины. Тем самым будет решена, проблема рисования и не только.

Старый 06.12.2007, 16:38
MurziQ вне форума Посмотреть профиль Отправить личное сообщение для MurziQ Найти все сообщения от MurziQ
  № 7  
Ответить с цитированием
MurziQ

Регистрация: Dec 2007
Сообщений: 6
Да это то я понимаю )) вопрос то в том с помощью чего это сделать (функции и прочее) - так бы я тут не просил о помощи...

Старый 06.12.2007, 16:52
amesqit вне форума Посмотреть профиль Отправить личное сообщение для amesqit Найти все сообщения от amesqit
  № 8  
Ответить с цитированием
amesqit
 
Аватар для amesqit

Регистрация: Oct 2007
Сообщений: 255
Записей в блоге: 1
линии строить Вы умеете, циклами пользоваться тоже, для матрицы есть класс Array(), а вот как получить информацию о связях между городами это уже ваша задача, я бы например, с таким xml-документом работать не стал, он мне не говорит ни о чем, кроме типа города, его координат и дороги ведущей из города в неизвестность.
Я просто не знаю чем еще Вам можно помочь, или вы предлагаете написать код за Вас?

Старый 06.12.2007, 18:26
MurziQ вне форума Посмотреть профиль Отправить личное сообщение для MurziQ Найти все сообщения от MurziQ
  № 9  
Ответить с цитированием
MurziQ

Регистрация: Dec 2007
Сообщений: 6
да нет не предлагаю - просто я неочень понимаю как сделать так чтобы строилась какбы одна кривая линия через цикл.

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

Регистрация: Oct 2007
Сообщений: 255
Записей в блоге: 1
если сможете построить матрицу, сможете построить и кривую, вкраце имя мартрицу связей

Москва | Пенза | Урюпинск
Москва 0 1 0
Пенза 1 0 1
Урюпинск 0 1 0

т.к. она симметричная относительно главной диагонали, берем нижнюю треугольную матрицу:

000
100
010

при обходе матрицы смотрим где единицы, в данном случае "Москва-Пенза" и "Пенза-Урюпинск", в так же у нас хранится массив объектов с координатами и т.д. "Москва, Пенза, Урюпинск" смотрим координаты элементов пересечения и строим прямую по ним.
Таким образом в цикле Вы обойдете все вершины графа и соедините между собой то, что нужно.

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

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

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


 


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


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