flash檔案訪問及datagrid的使用

來源:互聯網
上載者:User
flash檔案訪問及datagrid的使用

       昨天搞定用flash訪問本地檔案後,今天研究了一下datagrid的使用。以下為利用datagrid及共用對象將資料儲存在本地檔案的樣本:


代碼如下:

//此段代碼放在主幀中
System.useCodepage = true;
//產生SharedObject共用對象,檔案名稱為employee.sol
myLSO = SharedObject.getLocal("employee");
//如果本地沒有資料的場合
if (myLSO.data.myObj == undefined) {
    //組datagrid列名稱
    dg0.columnNames = ["Order"];
    //資料對象數組
    myDP0 = new Array();
    for (var i = 0; i<3; i++) {
        myDP0.addItem({Order:i});
    }
    //將資料裝入組datagrid對象中
    dg0.dataProvider = myDP0;
    //設定使用者資訊datagrid列名稱
    dg1.columnNames = ["id", "Name"];
    //資料對象數組
    myDP1 = new Array();
    for (var i = 0; i<6; i++) {
        myDP1.addItem({id:i, Name:"rainbow"+i});
    }
    dg1.dataProvider = myDP1;
} else {
    //讀取本機資料
    var order = myLSO.data.myObj.order;
    var employee = myLSO.data.myObj.employee;
    //將資料裝入datagrid對象中
    dg0.dataProvider = order;
    dg1.dataProvider = employee;
}
//設定datagrid對象的捲軸
dg0.vScrollPolicy = "off";
dg0.hScrollPolicy = "off";
//標題高度
dg0.setHeaderHeight(30);
dg1.vScrollPolicy = "on";
dg1.hScrollPolicy = "off";
dg1.setHeaderHeight(30);
//捲軸事件
//一個組2個員工
var myEvent = new Object();
myEvent.scroll = myEvent.change=function () {
    if (dg1.vPosition%2>0) {
        dg0.vPosition = (dg1.vPosition-1)/2;
    } else {
        dg0.vPosition = dg1.vPosition/2;
    }
    if (dg1.selectedIndex%2>0) {
        dg0.selectedIndex = (dg1.selectedIndex-1)/2;
    } else {
        dg0.selectedIndex = dg1.selectedIndex/2;
    }
};
//設定滾動位置
var myEvent1 = new Object();
myEvent1.scroll = myEvent1.change=function () {
    dg1.vPosition = dg0.vPosition*2-1;
};
//選擇事件
var myEvent2 = new Object();
myEvent2.change = function() {
    dg1.selectedIndex = dg0.selectedIndex*2;
};
//為datagrid對象加事件
dg1.addEventListener("scroll", myEvent);
dg1.addEventListener("change", myEvent);
dg0.addEventListener("scroll", myEvent1);
dg0.addEventListener("change", myEvent2);
//產生並修改datagrid的右鍵菜單
var focusInEvent = new Object();
focusInEvent.focusIn = function() {
    myMenu = new ContextMenu();
    myMenu.hideBuiltInItems();
    myMenu.customItems.push(new ContextMenuItem("AAAAAA", test01));
    myMenu.customItems.push(new ContextMenuItem("BBBBBB", test01));
    dg0.menu = myMenu;
    dg1.menu = myMenu;
};
dg0.addEventListener("focusIn", focusInEvent);
dg1.addEventListener("focusIn", focusInEvent);
//右鍵菜單事件
function test01(obj, item) {
    trace("test01");
}

//以下代碼放在Save按鈕中
on (click) {
    myLSO = SharedObject.getLocal("employee");
    myObj = [];
    order = new Array();
    for (var i = 0; i<this._parent.dg0.rowCount; i++) {
        order.push({Order:this._parent.dg0.getItemAt(i)["Order"]});
    }

    employee = new Array();
    for (var i = 0; i<this._parent.dg1.rowCount; i++) {
        employee.push({id:this._parent.dg1.getItemAt(i)["id"], Name:this._parent.dg1.getItemAt(i)["Name"]});
    }

    myObj.order = order;
    myObj.employee = employee;
    myLSO.data.myObj = myObj;
}

修改表格中的資料後,單擊儲存後重新開啟網頁,修改後的資料仍然儲存在表格中,這就是利用了共用對象來進行本地檔案儲存。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.