Показать сообщение отдельно
Старый 24.05.2007, 17:51
dVital вне форума Посмотреть профиль Отправить личное сообщение для dVital Найти все сообщения от dVital
  № 1  
Ответить с цитированием
dVital

Регистрация: May 2007
Сообщений: 12
Question делаю карту на флеш, но есть проблема...

Делаю карту Питера на флеш все должно быть ужаса до тревиально - 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++;
         }
       }
     };
   }