![]() |
|
||||||||||
|
|||||
|
а работы там не на много, если сильно не заморачиваться на прорисовку, то движек можно этак за день - два накидать%))
|
|
|||||
|
Цитата:
Последний раз редактировалось valvika; 11.01.2006 в 20:35. |
|
|||||
|
Цитата:
Теоретически ты можешь и сами города в базе держать с названиями...
__________________
Best regards, Boris Petrov |
|
|||||
|
Цитата:
Кстате у меня такое подозрение что админка в примере сдалана именно в чистом НТМЛ (ПХП) без флеша %) Последний раз редактировалось __i; 12.01.2006 в 15:07. |
|
|||||
|
Регистрация: Jan 2006
Сообщений: 17
|
Цитата:
так ты же ничем не помог ![]() на самом деле, с админкой я не заморачиваюсь, т.к. народ не захотел, а я предлагал. так что все будет до безобразия просто во Flash'e а если и будут изменения, то ручками их внести будет мах 5 мин |
|
|||||
|
Цитата:
Цитата:
|
|
|||||
|
Регистрация: Jan 2006
Сообщений: 17
|
ок, покажу, только еще не совсем готово! думаю завтра закончу!!!
![]() |
|
|||||
|
Цитата:
и пережёвывать темы которые уже поднимались на форуме желание есть не у всех...
__________________
Best regards, Boris Petrov |
|
|||||
|
Регистрация: Apr 2001
Адрес: Moscow
Сообщений: 1,475
|
Shyroop, в общем твоя задача состоит из трех основных частей:
1) построение карты городов на основании данных сервера (XML) 2) админ карты для добавления городов и маршрутов 3) подсветка маршрутов. пойдем по порядку: 1. построение карты городов на основании данных сервера (XML) тебе от сервера нужен XML вида: <map> <city id="0" _x="50" _y="50" to="1,2,3,4,5,6"> <![CDATA[<B>Москва</B>]]> </city> <city id="1" _x="50" _y="20" to="0,2,3,4,5,6"> <![CDATA[Питер]]> </city> ............... </map> остальное, думаю, понятно. после загрузки XML ты попросту бежишь по узлам типа: _root.xml_url = _root.xml_url.length ? _root.xml_url : 'map.php';
this.map_xml = new XML();
this.map_xml.ignoreWhite = true;
this.map_xml._parent = this;
this.map_xml.onLoad = function(ok) {
if (this.status or !ok) {
return trace('loaded: '+ok+' valid: '+!this.status);
}
this._parent.BuildMap(this);
};
this.map_xml.load(this.xml_url);
//
this.BuildMap = function(in_xml) {
var depth = this.getNextHighestDepth();
var city_holder_mc = this.createEmptyMovieClip("city_holder_mc", depth);
var node = in_xml.firstChild.firstChild;
var i = 0
while (node) {
city_holder_mc.attachMovie("city_mc", "city"+(i++)+"_mc", i, {in_xml:node});
node = node.nextSibling;
}
};
в конструкторе класса копируешь атрибуты в мувик: и твой город становится на место. затем отображаешь имя: this.name_txt.htmlText = this.in_xml.firstChild.nodeValue и настраиваешь текст поле типа: this.name_txt.autoSize = true и всё такое. всё, все стоят по местам и отображены. организация подсветки проста: в том же конструкторе делаешь объект, который тебе укажет на наличие связи с городами: this.to_cities_obj = {}
this.to = this.to.split(",")
var length = this.to.length
for (var i=0;i<length; i++){
this.to_cities_obj[this.to[i]] = true
}
можно к другому как кому нравится, но в любом случае при клике вещаем событие и передаем в качестве параметра свой id и координаты: function onRelease () {
какой_то_вещатель.broadcastMessage("onShowLines", this.id, ths._x, this._y)
}
думаю, тут дальше всё понятно и можно перейти к следующей части: 2. админ карты для добавления городов и маршрутов я админ совмещаю с картой. т.е. это всегда один проект. карта это всегда заодно и админ. просто, чтобы карту показать в режиме админа, я использую передачу через flashvars переменной, например admin=true и далее проверяю if (_level0.admin=="true"){ // значиццо админский режим. } тут всё тоже очень просто: если админский режим, то при драге меняем координаты у города - мувика, например: function onPress () {
this.startDrag()
}
function onMouseUp () {
this.stopDrag()
this.updateXML()
}
function updateXML () {
this.in_xml.attributes._x = this._x
this.in_xml.attributes._y = this._y
}
(естественно, в админском режиме оно должно быть редактируемым) и при установлении связей добавляешь id города в массив to и присваиваешь его соответствующему атрибуту: this.in_xml.attributes.to = this.to.join(",") таким образом твой XML в админке всегда готов к отправке и записи на сервак. остальное, надеюсь разберешься. удачи, iv |
|
|||||
|
Регистрация: Apr 2001
Адрес: Moscow
Сообщений: 1,475
|
[offtop]нда... меня бы на работе прибили, если бы такой проект я делал больше 4х часов.[/offtop]
|
![]() |
![]() |
Часовой пояс GMT +4, время: 10:22. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|