Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Не понимаю, как создать класс в AS 3.0 (http://www.flasher.ru/forum/showthread.php?t=109367)

CatWoman 13.03.2008 02:36

Не понимаю, как создать класс в AS 3.0
 
Помогите пожалустя!!
Раньше, чтобы создать класс двухмерного массива, можно было использовать следующий код:
Код:

var ArrTemp = function ()
{
this.ggg = new Array();
this.fieldsize_w = 10;
this.fieldsize_h = 10;
this.i=0;
this.j=0;
for(this.i=0;this.i<=this.fieldsize_w;this.i++)
    {
        this["ggg"+this.i] = new Array();
        for(this.j=0;this.j<=this.fieldsize_h;this.j++)
    {
        this["ggg"+this.i][this.j]=0;
    }
        this.ggg[this.i]=this["ggg"+this.i];
        //trace("ggg2="+ggg2);
    }
}
var MyMassive = new ArrTemp();
MyMassive.ggg[1][1]=734.6;
....

но на AS 3.0 сделать таким образом мой массив не получается...
подскажите как перевести на 3 action script конструкцию типа
Код:

A = function ()
{
myVar=10
}
B = new A;
trace(B.myVar);

?????
А если можно, то подскажите еще и на счет примера с массивом, как он будет выглядеть на новой версии языка?

Gaen 13.03.2008 03:15

отдельный файл YourClass.as
Код:

package{

    public class YourClass{

        //тут свойства

        public function YourClass{
              //вся та фигня которая происходит при создании экземпляра
        }//end of constructor

        //тут методы

    }//YourClass

}//package


etc 13.03.2008 09:57

Цитата:

Сообщение от CatWoman
Раньше, чтобы создать класс двухмерного массива

Это не класс, а функция-объект с заданными свойствами. Классы же, как и в AS2, так и AS3, пишутся во внешних *.as файлах.
В хелпе, в разделе Programming ActionScript 3.0 > Getting Started with ActionScript все подробно описано.

CatWoman 13.03.2008 15:35

Цитата:

Сообщение от __etc
Это не класс, а функция-объект с заданными свойствами.

Извиняюсь, видно названием я ошиблась):confused:
Но суть от этого не меняется, мне нужно создать функцию-объект, которая обладает такими же свойствами, про которые я писала выше, но только на AS 3.0. Подскажите как мне это сделать плизь..:wacko:

wvxvw 13.03.2008 15:48

Код:

var arrTemp:Function = function() {
        this.ggg = [];
        this.fieldsize_w = 10;
        this.fieldsize_h = 10;
        this.i = 0;
        this.j = 0;
        for (this.i = 0; this.i <= this.fieldsize_w; this.i++) {
                this["ggg" + this.i] = [];
                for (this.j = 0; this.j <= this.fieldsize_h; this.j++) {
                        this["ggg" + this.i].push(0);
                }
                this.ggg[this.i] = this["ggg" + this.i];
                //trace("ggg2="+ggg2);
        }
}
var myMassive = new arrTemp();
myMassive.ggg[1][1] = 734.6;
trace(myMassive.ggg[1][1]);
trace(myMassive.ggg[0][0]);

Все работает... а что у вас не получалось?

etc 13.03.2008 15:55

Цитата:

Сообщение от CatWoman
Извиняюсь, видно названием я ошиблась):confused:
Но суть от этого не меняется, мне нужно создать функцию-объект, которая обладает такими же свойствами, про которые я писала выше, но только на AS 3.0. Подскажите как мне это сделать плизь..:wacko:

Собственно, ваш код без изменений и в AS3 будет работать, правда, медленно.
Лучше, конечно же, вынести в отдельный класс такую штуку.

CatWoman 14.03.2008 23:18

Спасибо, все заработало!):rolleyes:


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

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