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

goword 21.09.2008 21:17

Создать таблицу во флеше.
 
Вложений: 1
Что должно получится визуально, приложил.
Вопрос, как организовать чтение с xml данных, чтобы наиболее проще получить результат!
Речь идет о таблице "Цепь"

Mnilionic 21.09.2008 21:27

наиболее проще сделать gif с прозрачным фоном и грузить его :)

goword 21.09.2008 21:46

А если серьезно, что сложно?

zanull 21.09.2008 22:14

сделай ячейки, сделай xml парси его и пиши данные в эти ячейки, что тут сложного, а на фон кинь эту картинку

goword 21.09.2008 22:15

Так вот имеено, как сделать эти ячейки программно?

zanull 21.09.2008 22:19

вот пример, дальше додумай:
Код:

function loadXML(loaded) {
        if (loaded) {
                _root.table1 = this.firstChild.childNodes[0].childNodes[0].firstChild.nodeValue;
                table1_txt.text = _root.table1;
                } else {
                content = "file not loaded!";
        }
}
xmlData = new XML();
xmlData.ignoreWhite = true;
xmlData.onLoad = loadXML;
xmlData.load("table.xml");

table1_txt - твоя ячейка

scarbo 21.09.2008 22:21

Да,а дальше самое сложное,как раз начинается

zanull 21.09.2008 22:24

что сложного? написать xml?

Mnilionic 22.09.2008 01:02

как вариант на скорую руку с однострочными ячейками

table.xml
Код:

<table>
    <col width="100" />
    <col width="30" />
    <tr>
        <td>0.0</td><td>0.1</td>
    </tr>
    <tr>
        <td>1.0</td><td>1.1</td>
    </tr>
</table>

во флеше:
Код:


xml = new XML();
xml.ignoreWhite = true;
xml.onLoad = loadXML;
xml.load("table.xml");

function loadXML(isloaded) {
        if (isloaded) parse(this);
        else trace('not loaded');
}
function parse(xml){
        var table = xml.firstChild;
        var cols = get_cols(table);
        var trs = get_trs(table);
        var data = get_tds(trs);
        draw_table(data, cols);
}
function get_cols(table){
        var cols = new Array();
        var col = table.firstChild;
        while( col.nodeName == 'col' ){
                cols.push(col.attributes.width);
                col = col.nextSibling;
        }
        return cols;
}
function get_trs(table){
        var trs = new Array();
        var tr = table.firstChild;
        while( tr ){
                if( tr.nodeName == 'tr') trs.push(tr);
                tr = tr.nextSibling;
        }       
        return trs;
}
function get_tds(trs){
        var data = new Array();
        for(var i = 0; i < trs.length; i++){
                data[i] = new Array();
                var td = trs[i].firstChild;
                while( td ){
                        data[i].push(td.firstChild.nodeValue);
                        td = td.nextSibling;
                }
        }
        return data;
}
function draw_table(data, cols){
        var table = this.createEmptyMovieClip('mc_table', 1);
        for(var i = 0; i < data.length; i++){
                var w_cumulate = 0;
                for(var j = 0; j < data[i].length; j++){
                        var w = cols[j];
                        var x = w_cumulate;
                        var cel = table.createTextField('cel'+i+j, table.getNextHighestDepth(), x, i*25, w, 25);
                        cel.text = data[i][j];
                        cel.border = true;
                        //
                        w_cumulate += Number(w);
                }
        }
}

капайтесь, размышляйте, настраивайте

wvxvw 22.09.2008 01:17

Ну вы даете... а чем TextFormat.tabStops не подошел?
Код:

var source:String = "1.\tIntroduction\tpage\t1\r";
source += "2.\tTable of Contents\tpage\t2";
var tf:TextField = this.createTextField("tf", 0, 0, 0, 200, 200);
tf.multiline = true;
var tff:TextFormat = new TextFormat();
tff.tabStops = [20, 130, 170];
tf.setNewTextFormat(tff);
tf.text = source;



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

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