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

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? Шифровка? Вы специально так пишете, чтобы вообще никто, кроме вас, не понял, что вы пишете?


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

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