Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Данные из ХМЛ, координаты для рисования (http://www.flasher.ru/forum/showthread.php?t=110393)

Kinley 02.04.2008 01:59

Данные из XML, координаты для рисования
 
Вложений: 1
В общем такая проблема.

Нужно, чтобы флешка рисовала квадратик, беря координаты из xml-файла.
Функция рисования квадратика сама по себе работает отменно. Но если заменяешь на данные, взятые из xml, начинают твориться чудеса: сначала я думал, что он квадратище, который получается, просто уходит за рамки. Но после многочисленных экспериментов установил: при изменении х и у в файле, квадрат меняется в размерах с умножением, видимо, на какой-то коэффициент k...

чтобы наглядно это увидеть, попробуйте значения (х,у) = (1,1), (2,2), (3,3)...

Кто может, объясните пожалуйста, что это такое... 0_о

Код:

_root.createEmptyMovieClip("myClip", 1);

drawSqr = function(xx,yy,a) {
        myClip.lineStyle(2,0x234567);
        myClip.beginFill(0x7878FF);
        myClip.moveTo(xx,yy);
        myClip.lineTo(xx+a,yy);
        myClip.lineTo(xx+a,yy+a);
        myClip.lineTo(xx,yy+a);
        myClip.endFill();
}

make = function () {
        var xx = my_xml.childNodes[0].attributes.xx;
        var yy = my_xml.childNodes[0].attributes.yy;
        drawSqr (xx,yy,50);
        trace(xx+" "+yy);
}

//onMouseDown = trace(_xmouse+" "+_ymouse);

myClip.onMouseDown = function() {
        drawSqr(_xmouse,_ymouse,50);
}

my_xml = new XML();
my_xml.ignoreWhite = true;
my_xml.onLoad = function(ok) {
        if (ok) {
                make();
        }
};
my_xml.load("data.xml");
trace(my_xml.status);

XML:
Код:

<item id='1' name = 'item1' xx = '5' yy = '5'></item>

Molecula 02.04.2008 02:10

Выделил цветом.
Код:

var xx = Number(my_xml.firstChild.childNodes[0].attributes.xx);
var yy = Number(my_xml.firstChild.childNodes[0].attributes.yy);

ХМЛь файл должен выглядеть так:
Код:

<?xml version="1.0" encoding="UTF-8"?>
<root>
<item id='1' name = 'item1' xx = '5' yy = '5'></item>
</root>

а не одной строчкой.

screamge 02.04.2008 02:22

Kinley, оформите код тегами [code][/code].

lexo2000 02.04.2008 08:00

По-моему, в функции рисования квадрата не хватает строчки
Код:

myClip.lineTo(xx, yy);
, которая должна быть перед "myClip.endFill()".

Kinley 02.04.2008 14:46

lexo2000, кажется это не имеет значения - он автоматом сам дорисовывает (в этом конкретном случае), когда используешь endFill().

Тем более, я пробовал и так и так.

Molecula, спасибо! Сейчас испробую. ТОлько вот вопрос: а почему низзя одной строчкой в один тэг?

И в чем в итоге отличие, когда я явно пропишу "childNodes[0]" или порсто скажу ему: "firstChild"

screamge, уже сделал! :) ...я просто сразу не нашел в час ночи, что да как.. Прошу простить меня, Уважаемые! :)

УРРА!!! Получилось! Спасибо! Все дело было в приведении типа... вотъ... :)

Kinley 06.04.2008 02:16

А у меня продолжение истории! :)

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

1) Функцию стрелочки я написал, но вот проблема. Не могли бы вы объяснить, что за второй параметр в функции createEmptyMovieClip?
Потому что мои ислледования и эксперименты натолкнули меня на мысль, что это довольно-таки важный параметр... :)

2) Посоветуйте пожалуйста, как лучше описать связь между элементами в XML-документе. (чтобы потом по этим связям рисовать стрелочки)

Мой вариант:

Код:

<?xml version="1.0" encoding="UTF-8"?>
<root>
 <item id='1' name = 'item1' xx = '5' yy = '5'>
  <rel> item2 </rel>
 </item>
 <item id='2' name = 'item2' xx = '50' yy = '50'>
 </item>
 <item id='3' name = 'item3' xx = '5' yy = '5'>
  <rel> item2 </rel>
 </item>
</root>

что-то типа такого...
но, если честно, смотрю сам, и не понимаю, как это использовать... 0_о

Помогите, пожалуйста, кто чем может... :)


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

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