Форум 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)
-   -   Круговая диаграмма средствами Action Script (http://www.flasher.ru/forum/showthread.php?t=82561)

Charly84 15.07.2006 20:30

Круговая диаграмма средствами Action Script
 
Есть какие-то данные ;)
Как с помощью Экшн Скрипт сделать по этим данным круговую диаграмму?

Заранее спасибо :)

etc 15.07.2006 22:25

Написать соответствующий код.

Charly84 15.07.2006 23:13

Цитата:

Сообщение от __etc
Написать соответствующий код.

Вот тут я и прошу помощи... ;)

iNils 15.07.2006 23:41

Помощь бывает разная, то что вы хотите на данном форуме считается не "помогите", а "сделайте за меня". Разницу ощущаете?

Но я вам помогу и посоветую обратиться в поиск (не обязательно по форуму). 200% что диаграммы на флеше делали и не один раз.

Charly84 16.07.2006 00:13

Цитата:

Сообщение от iNils
Помощь бывает разная, то что вы хотите на данном форуме считается не "помогите", а "сделайте за меня". Разницу ощущаете?

Но я вам помогу и посоветую обратиться в поиск (не обязательно по форуму). 200% что диаграммы на флеше делали и не один раз.


Я не откажусь и от готового кода.. :rolleyes:
Потому что сам не знаю, как сделать :(

iNils 16.07.2006 00:23

Может вам кто-то и поможет и напишет за вас, например D12/Nidl :bye:
Но поиск все же лучше :)

Techmaker 16.07.2006 00:31

Цитата:

Сообщение от Charly84
Я не откажусь и от готового кода.. :rolleyes:

дам готовый код за 10 у.е. :p

Nidl 16.07.2006 01:32

Вложений: 1
Да ничего сложного в создании подобной диаграммы нет , просто немного смекалки =)

P.S. 2Techmaker =)

iNils 16.07.2006 01:43

Цитата:

Сообщение от Nidl
Да ничего сложного в создании подобной диаграммы нет , просто немного смекалки =)

Ужас, это больше похоже на отсутствие смекалки. Есть метод toCurve.

Nidl 16.07.2006 01:46

ну некто незапрещает рисовать програмно =) , мне лень : )

Nirth 16.07.2006 01:49

SWF Chart

Charly84 16.07.2006 02:33

Можно и программно :)

artcraft 16.07.2006 03:07

Видал AS2 класс для рисования секторов круга
(даже, кажется, на сайте адоб)

Charly84 16.07.2006 14:38

Вот тут дали исходник.. Все меня устраивает...

А как еще сделать каждый сектор кнопкой.. ;) Чтобы принажатии открывалась своя страничка.. ? ;)

Nidl 16.07.2006 19:15

Код:

z = 136;
zz = 124;
zzz = 100;
//
zy = 0;
zx = 0;
ll = 90;
//
zzx = 275;
zzy = 200;
//
_root.createEmptyMovieClip("sector", -1);
_root.sector.createEmptyMovieClip("lines", -2);
with (_root.sector.lines) {
        lineStyle(2, 0x6600FF, 100);
        moveTo(zx, zy-ll);
        lineTo(zx, zy);
        endFill();
        _x = zzx;
        _y = zzy;
}
for (var i; i<z; i += 1) {
        _root.sector.lines.duplicateMovieClip("mc2"+i, i);
        _root.sector["mc2"+i]._rotation = i;
}
///
_root.createEmptyMovieClip("sector1", -3);
_root.sector1.createEmptyMovieClip("liness", -4);
with (_root.sector1.liness) {
        lineStyle(2, 0xFF0000, 100);
        moveTo(zx, zy-ll);
        lineTo(zx, zy);
        endFill();
        _x = zzx;
        _y = zzy;
}
for (var w; w<zz; w += 1) {
        _root.sector1.liness.duplicateMovieClip("mc3"+w+z, w+z);
        _root.sector1["mc3"+w+z]._rotation = z+w;
}
///
_root.createEmptyMovieClip("sector2", -5);
_root.sector2.createEmptyMovieClip("linesss", -6);
with (_root.sector2.linesss) {
        lineStyle(2, 0xFFFF00, 100);
        moveTo(zx, zy-ll);
        lineTo(zx, zy);
        endFill();
        _x = zzx;
        _y = zzy;
}
for (var f; f<zzz; f += 1) {
        _root.sector2.linesss.duplicateMovieClip("mc4"+f+z+zz, f+z+zz);
        _root.sector2["mc4"+f+z+zz]._rotation = z+zz+f;
}
//////////////////////////////////////////////
_root.sector.onPress = function() {
        getURL("http://www.flasher.ru", "_blank");
};
_root.sector1.onPress = function() {
        getURL("http://www.google.com", "_blank");
};
_root.sector2.onPress = function() {
        getURL("http://www.rambler.ru", "_blank");
};

Покликай по секторам =)

Charly84 16.07.2006 19:45

За ссылки спасибо... (я уже сам сделал, но по другому)..
а вот проблема с правильностью графика осталась...

например поставить z=1111, zz = 20, zzz = 40 и сразу видно, что первый сектор занимает весь круг :(

Nidl 16.07.2006 22:25

Круг имеет 360 градусов если ты хочешь перевести в секторы 1111,20,40 то :
1111+20+40=100%
отсюда 1111 округленно = 95% в секторах округляем z = 342;
отсюда 20 округленно = 2% в секторах округляем zz = 7;
отсюда 40 округленно = 3% в секторах округляем zzz = 11;

P.S. под пример который я дал , только так .

Charly84 17.07.2006 14:08

Цитата:

Сообщение от Nidl
Круг имеет 360 градусов если ты хочешь перевести в секторы 1111,20,40 то :
1111+20+40=100%
отсюда 1111 округленно = 95% в секторах округляем z = 342;
отсюда 20 округленно = 2% в секторах округляем zz = 7;
отсюда 40 округленно = 3% в секторах округляем zzz = 11;

P.S. под пример который я дал , только так .

Я вроде так и делал...
После этого второй (коасный) сектор вообще не отображался... он как-бы пропадал..

И не всегда диграмма отображала данные...
Иногда просто отображался голий круг или сектор где-то за пределами круга.. :(

Может проблема в том, что у меня дробне числа получались? ;) Если да, то как их иокруглять?

Это может быть от того, что у меня Флешка 8-ая?

iNils 17.07.2006 14:17

Конечно из-за 8-го, а также mx 2004 флеша.
Для всех циклов укажи начальное значение для переменных равно 0.

etc 17.07.2006 14:59

Nidl, а что такое z, zz, zzz, zzx, zzy, ll? Шифровка? Вы специально так пишете, чтобы вообще никто, кроме вас, не понял, что вы пишете?

Charly84 17.07.2006 15:30

Цитата:

Сообщение от iNils
Конечно из-за 8-го, а также mx 2004 флеша.
Для всех циклов укажи начальное значение для переменных равно 0.

Код:

for (var w=0; w<zz; w += 1) {
        _root.sector1.liness.duplicateMovieClip("mc3"+w+z, w+z);
        _root.sector1["mc3"+w+z]._rotation = z+w;
}
///

Тоесть так? ;)

iNils 17.07.2006 15:31

Именно

Nidl 17.07.2006 20:59

2__etc извени если что , если хочешь для тебя любые подробности =)

etc 17.07.2006 21:33

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

Nirth 17.07.2006 21:52

Nidl - человек обсфукатор

iNils 17.07.2006 22:02

Цитата:

Сообщение от Nirth
Nidl - человек обсфукатор

Надо на него ссылку давать.

Charly84 18.07.2006 12:38

В принципе исходник поборол.. Во всем разобрался..
Помогите теперь на каждій сектор повесить надпись, которая отображала б название данного сектора ;)


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

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