Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   Правильный синтаксис многомерного массива (http://www.flasher.ru/forum/showthread.php?t=60572)

Lego 13.07.2004 12:06

Правильный синтаксис многомерного массива
 
Не могу сообразить как правильно описать подобную структуру:
Код:

function TRecordSet(fields)
{
        this.fields = fields;
        this.fieldCount = this.fields.length;
        this.recordCount = 0;
        this.records = [];
}

TRecordSet.prototype.AddRecord = function(records)
{
        for(var i = 0; i < this.fieldCount; i++)
        {
                this.records[this.recordCount][this.fields[i] ] = records[i];
        }
        this.recordCount++;
}

rs = new TRecordSet(["name", "city"])
rs.AddRecord("Oleg","Dnepropetrovsk");

trace(rs[0].name);
trace(rs[0].city);

На

trace(rs[0].name);
trace(rs[0].city);

получаю

undefined
undefined

А как бы мне вот так вот, чтобы все-таки

trace(rs[0].name);
trace(rs[0].city);

и получалось

Oleg
Dnepropetrovsk


Большое спасибо.

Lego 13.07.2004 13:43

Только вместо

rs.AddRecord("Oleg","Dnepropetrovsk");

пишу

rs.AddRecord(["Oleg","Dnepropetrovsk"]);

DeliMIter 13.07.2004 14:06

Код:

class TRecordSet extends Array {

  private var Fields:Array;

  function TRecordSet(heap) {
    Fields = heap;
  }

  public function addRecord(heap) {
    var newitem = new Object();
    for (var i=0; i<Fields.length; i++) {
      newitem[Fields[i]] = heap[i];
    }
    push(newitem);
  }
}

Код:

import TRecordSet;

var RS = new TRecordSet(["name", "city"]);
RS.addRecord(["Suxx", "Suxxberg"]);

trace(RS[0].name);
trace(RS[0].city);


Lego 13.07.2004 14:30

Я так понимаю это синтаксис семерки?
Я им не сильно владею.

Я должен создать отдельный файл TRecordSet.as, а в основном мувике прописать

import TRecordSet;

var RS = new TRecordSet(["name", "city"]);
RS.addRecord(["Suxx", "Suxxberg"]);

trace(RS[0].name);
trace(RS[0].city);

???

З.Ы. Насколько стоит переходить на новый синтаксис (тут с предыдущим едва разобрался)?

Lego 13.07.2004 15:04

Огромное спасибо. Разобрался

Lego 13.07.2004 15:18

Сделал так, дабы сохранить стиль синтаксиса :)
Код:

TRecordSet.prototype = new Array();

function TRecordSet(fields)
{
        this.fields = fields;
}

TRecordSet.prototype.AddRecord = function(heap)
{
        var records = new Object();
        for(var i = 0; i < this.fields.length; i++)
        {
                records[this.fields[i]] = heap[i];
                trace(records[this.fields[i]]);
        }
        this.push(records);
}

rs = new TRecordSet(["name", "city"])
rs.AddRecord(["Oleg","Dnepropetrovsk"]);

trace(rs[0].name);
trace(rs[0].city);

Еще раз спасибо.


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

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