PDA

Просмотр полной версии : делаю карту на флеш, но есть проблема...


dVital
24.05.2007, 17:51
Делаю карту Питера на флеш все должно быть ужаса до тревиально - 2 слоя: на нижнем собственно карта, на верхний подгружаются различные указатели, которые подгружаются из xml - файла. Однако нижний слой показывается, а верхний (где должны быть загружены указатели) - нет. Наставил trace - ов - оказалось, что xml нормально парсится, мувики - создаются, координаты их и габариты - проставляются.

Здесь код функции, которая загружает xml и расставляет мувики на верхнем слое:

public function loadXML(url:String, type:Number, paper:MovieClip):Void {
var xml1:XML = new XML();
xml1.ignoreWhite = true;
xml1.load("ankets.xml");
xml1.onLoad = function(success) {
if (!success) {
trace("сбой в загрузке");
} else {
trace("загрузка прошла успешно");
var rootNode:XMLNode = xml1.firstChild;
trace("rootNode="+rootNode);
var k:Number = 0;
var x1:Number = 0;
var y1:Number = 0;
var x2:Number = 0;
var y2:Number = 0;
for (var ankets = rootNode.firstChild; ankets != null; ankets=ankets.nextSibling) {
trace(ankets);
var attribs:Array = ankets.attributes;
if (attribs["type"] == 1) {
var ank:MovieClip = paper.attachMovie("Ind", "anket"+String(k), paper.getNextHighestDepth());
} else {
var ank:MovieClip = paper.attachMovie("Salon", "anket"+String(k), paper.getNextHighestDepth());
}
trace("ank="+ank);
if (type == 1) {
x1 = 2;
y1 = 5;
}
if (type == 2) {
x1 = 7;
y1 = 11;
}
if (type == 3) {
x1 = 15;
y1 = 23;
}
if (type == 4) {
x1 = 31;
y1 = 45;
}
if (attribs['saved'] == "1") {
x2 = 2;
y2 = 5;
}
if (attribs['saved'] == "2") {
x2 = 7;
y2 = 11;
}
if (attribs['saved'] == "3") {
x2 = 15;
y2 = 23;
}
if (attribs['saved'] == "4") {
x2 = 31;
y2 = 45;
}
paper["anket"+String(k)]._x = Math.floor(attribs["x"]*x1/x2);
paper["anket"+String(k)]._y = Math.floor(attribs["y"]*y1/y2);
paper["anket"+String(k)]._width = 20;
paper["anket"+String(k)]._height = 20;
trace("x="+paper["anket"+String(k)]._x);
trace("y="+paper["anket"+String(k)]._y);
k++;
}
}
};
}

chingachgoog
24.05.2007, 18:20
А мувик paper где находиться?
Точно на верхнем слое?

dVital
24.05.2007, 18:32
мувик paper на слое выше слоя с картой. Он непрозрачный и координаты у него нормальные.

chingachgoog
24.05.2007, 19:42
Не знаю.
Я бы проверил после загрузки и расстановки клипов:
1) уровень paper и уровень карты
2) перебрал бы в папер элементы for in - тот ли это папер и что там есть.
3) проверил визибл папер и его прозрачность

все это только уже ПОСЛЕ расстановки объектов

screamge
24.05.2007, 19:49
А вообще лучше выложите исходник, сложно как-то в этих всех if - ax разбираться.

з.ы. про switch case - слышали

iNils
24.05.2007, 21:23
А вообще лучше выложите исходник, сложно как-то в этих всех if - ax разбираться.

з.ы. про switch case - слышалиА мне больше массивы нравятся.

А что есть paper?

screamge
24.05.2007, 22:00
Ну тут дело вкуса))

dVital
24.05.2007, 23:27
Исходник - http://sokov.spb.ru/Example/map.zip

А мне больше нравятся объекты. :taunt:

dVital
25.05.2007, 13:48
Очень буду рад помощи! :)