Форум 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=96949)

Snut 10.06.2007 16:08

Таблица менделеева
 
Появилась идея сделать таблицу менделеева на флеше, мож идея и глупая, но она меня как-то вставила))), по мере разработки идеи все казалось очень просто, но (для чего проект и придумался) в проекте не будет ни миллиметра графики нарисованной от руки, тоесть, програмная анимация и т.п. Вся информация об элементах будет браться из ХМЛ:
Код:

<?xml version="1.0" encoding="utf-8"?>
<elements>
<element pos="1">
<x>240</x>
<y>864</y>
<name>H</name>
<discription>Водород</discription>
<mass>1,008</mass>
<ele1>1</ele1>
<ele2>0</ele2>
<ele3>0</ele3>
<ele4>0</ele4>
<ele5>0</ele5>
<ele6>0</ele6>
<ele7>0</ele7>
<color>red</color>
</element>
<element pos="2">
<x>1200</x>
<y>864</y>
<name>H</name>
<discription>Водород</discription>
<mass>4,003</mass>
<ele1>2</ele1>
<ele2>0</ele2>
<ele3>0</ele3>
<ele4>0</ele4>
<ele5>0</ele5>
<ele6>0</ele6>
<ele7>0</ele7>
<color>red</color>
</element>
<element pos="3">
<x>240</x>
<y>800</y>
<name>Li</name>
<discription>Литий</discription>
<mass>6,941</mass>
<ele1>2</ele1>
<ele2>1</ele2>
<ele3>0</ele3>
<ele4>0</ele4>
<ele5>0</ele5>
<ele6>0</ele6>
<ele7>0</ele7>
<color>red</color>
</element>
<element pos="4">
<x>336</x>
<y>800</y>
<name>Be</name>
<discription>Берилий</discription>
<mass>9,0122</mass>
<ele1>2</ele1>
<ele2>2</ele2>
<ele3>0</ele3>
<ele4>0</ele4>
<ele5>0</ele5>
<ele6>0</ele6>
<ele7>0</ele7>
<color>red</color>
</element>
<element pos="5">
<x>432</x>
<y>800</y>
<name>B</name>
<discription>Бор</discription>
<mass>10,811</mass>
<ele1>2</ele1>
<ele2>3</ele2>
<ele3>0</ele3>
<ele4>0</ele4>
<ele5>0</ele5>
<ele6>0</ele6>
<ele7>0</ele7>
<color>yellow</color>
</element>
<none/>
<element pos="109">
<x>1008</x>
<y>288</y>
<name>Mt</name>
<discription>Мейтнерий</discription>
<mass>[265]</mass>
<ele1>2</ele1>
<ele2>8</ele2>
<ele3>18</ele3>
<ele4>32</ele4>
<ele5>32</ele5>
<ele6>15</ele6>
<ele7>2</ele7>
<color>blue</color>
</element>
</elements>

описание элементов:
<element pos="XXX"> позиция Элемента в таблице менделеева
<x> - координата по Х
<y> - координата по Y
<name> - сокращенное название элемента
<discription> - описание элемента (полное название)
<mass> - молярная масса
<ele1> - колличество электронов на 1 орбите
<ele2> - колличество электронов на 2 орбите
--//--
<ele7> - колличество электронов на 7 орбите
<color> - цвет подложки элемента

Реализовать все хочу через класс, но не суть.

отсюда первый вопрос, как при createEmptyMovieClip дать ему точку привязки не в левый верхний угол, а в середину?

общий вид собственно финальной таблицы:
Осторожно, тяжелая (200Кб)

класс соответсвенно будет парсить ХМЛ создавать мувик, в нем 11 текстовых полей вбивать туда инфу из XML, ставить мувик координататами в нужную точку, задавать цвет "подложки" и инициализировать анимацию увелечения\уменьшения при, соответственно, rollOver\rollOut (из-за этого мне и нужно создавать мувик с точкой привязки в середине...)

Кто подскажет мождет какие тонкости еще продумать надо?

Tardos Mors 10.06.2007 17:29

Чтобы сделать точку привязывания в середине, нужно содержимое мувика выровнять посередине (вроде этого):
Код:

mc.content._x = -(mc.content._width / 2);

etc 10.06.2007 17:32

Через один единственный класс? Тогда уж лучше вообще без них…

Про createEmptyMovieClip: никак, положить созданный клип в другой и сместить, куда нужно.

†‡Paladin‡† 10.06.2007 17:46

Смысл мудрить с точками привязки?

Осторожно, тяжелая (200Кб) // порадовало

Snut 10.06.2007 18:31

to ___etc: а как тогда сделать? просто можно в первый кадр весь код пихнуть к примеру... так ведь?

to †‡Paladin‡†
Цитата:

Смысл мудрить с точками привязки?
Объясняю, т.к. при ролловере элемент будет увеличиваться, и конечно, желательно, чтобы он увеличивался из центра а не из угла.
Цитата:

Осторожно, тяжелая (200Кб) // порадовало
действительно симпатично? я просто думал поярче, поконтрастнее, сделать

Snut 10.06.2007 18:32

Цитата:

Сообщение от Tardos Mors
Чтобы сделать точку привязывания в середине, нужно содержимое мувика выровнять посередине (вроде этого):
Код:

mc.content._x = -(mc.content._width / 2);

хм... как вариант.

//upd хотя не, туплю.... не то...

etc 10.06.2007 18:33

Цитата:

Сообщение от Snut
to ___etc: а как тогда сделать? просто можно в первый кадр весь код пихнуть к примеру... так ведь?

Это будет все тоже линейное, а не структурное программирование, если всё в одном классе.

Snut 10.06.2007 18:34

___etc: согласен, какие либо более структрированные мыслши появились что можно: улучшить добавить, сделать, переделать, передумать, etc.

Snut 11.06.2007 14:28

Вот.... столкнулся с первой проблемой, реально ли сделать выборку из ХМЛ по имени узла а именно атрибуту имени узла? Например <element pos="1">

тоесть чтобы брал именно 1 или там двойку и т.п.

screamge 11.06.2007 14:30

idMap в помощь


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

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