Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Проблема с dataProvider'ом? (http://www.flasher.ru/forum/showthread.php?t=153239)

gyparr 30.03.2011 19:37

Проблема с dataProvider'ом?
 
Итак, проблема в том, что ничего не могу добавить в таблицу входных данных.. Хотя в таблицу для программы все нормально добавляется..Пробовал оставить только таблицу для входных данных, все равно не работает...

Код AS3:

import flash.net.FileReferenceList;
import fl.data.DataProvider;
import flash.net.FileReference;
import flash.events.*;
import fl.controls.*;
 
var funcArr:Array;  //массив для программы РАСПа...
var inputArr:Array; //массив для входных данных..
var metki:DataProvider = new DataProvider()//создаю датаПровайдер
var colIns:DataProvider = new DataProvider();
var inputdata:DataProvider = new DataProvider();
var outPutData:DataProvider = new DataProvider();
var totalEntries:uint=1;
 
metki.addItem(totalEntries);
colIns.addItem({Data:1})
inputdata.addItem({Data:1});
 
//таблица для номеров строк
var dg:DataGrid = new DataGrid();
dg.columns=["num of string"];
dg.editable=false;
dg.dataProvider=metki;
dg.move(180,10);
dg.setSize(40,500);
dg.sortableColumns = false;
 
//таблица для программы
var dg2:DataGrid = new DataGrid();
dg2.columns=["Data"];
dg2.editable=true;
dg2.dataProvider=colIns;
dg2.move(230,10);
dg2.setSize(40,500);
dg2.sortableColumns = false;
 
//таблица для входных значений
var dg3:DataGrid = new DataGrid();
dg3.columns=["inPut"];
dg3.editable=true;
dg3.dataProvider=inputdata;
dg3.move(10,10);
dg3.setSize(40,500);
dg3.sortableColumns = false;
 
//таблица для выходных значений
var dg4:DataGrid = new DataGrid();
dg4.columns=["OutPut"];
dg4.editable=false;
dg4.dataProvider=outPutData;
dg4.move(450,10);
dg4.setSize(60,500);
dg4.sortableColumns = false;
 
var editinPutData:Button = new Button();
editinPutData.move(50,10);
editinPutData.label="Добавить строку";
editinPutData.addEventListener(MouseEvent.CLICK,editInPut);
 
var editButton:Button = new Button();
editButton.move(300,10);
editButton.label="Добавить строку";
editButton.addEventListener(MouseEvent.CLICK,editGrid);
 
var startButton:Button = new Button();
startButton.move(300,40);
startButton.label="Начать";
startButton.addEventListener(MouseEvent.CLICK,startProg);
 
addChild(dg);
addChild(dg2);
addChild(dg3);
addChild(dg4);
addChild(editinPutData);
addChild(editButton);
addChild(startButton);
 
function editInPut(e:MouseEvent):void            //увеличиваю датаПровайдеров на 1 строку
{                 
        inputdata.addItem({Data:1});
}
 
function editGrid(e:MouseEvent):void            //увеличиваю датаПровайдеров на 1 строку
{ 
        totalEntries++;
        metki.addItem(totalEntries);                   
        colIns.addItem({Data:1});
}
 
function startProg(e:MouseEvent):void            //основаная функция
{ 
        funcArr = startCompil(colIns);
        inputArr = startCompil(inputdata);
        trace(inputArr);
        trace(funcArr);
}
 
function startCompil(col:DataProvider):Array        //преобразование таблицы данных в массив чисел       
{
        var arrInstr:Array = new Array;
        var arrProg: Array = new Array;
        arrInstr = col.toArray();
        var j: int;
        var u: int = 1;
        for (j=0; j<arrInstr.length; j++)
        {
                var k: int;
                var str:String;
                k = poisk(look(arrInstr[j]));
                str = look(arrInstr[j]).substring(6,k);
                arrProg[u] = uint(str);
                u++;
        }
        arrProg[0] = 0// присваиваю аккумулятору 0
        return(arrProg);
}
function poisk(st:String):int  //поиск скобки в строке
{
        var iter: int = 1;
        var skobka:Boolean = true;
        while (skobka)
        {
                if (st.charAt(iter) == "}")
                {
                        skobka = false;
                }
                else {iter++;}
        }
        return(iter);
}
 
function look (object:*):String  //функция перевода объекта в строку
{
        var result:String = "";
        if (!object || object is Boolean || object is int || object is String || object is Number)
        {
                result += String(object);
        }
        else if (object is Array)
        {
                result += "[";
                for (var i:int = 0; i < object.length; i++)
                {
                        result += look(object[i]);
                }
                result += "]";
        }
        else if (object is Object)
        {
                result += "{";
                for (var key:* in object)
                {
                        result += String(key) + ":" + look( object[key] );
                }
                result += "}";
        }
        return result;
}



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

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