Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   работа с классами (http://www.flasher.ru/forum/showthread.php?t=180513)

Svoy4 04.06.2012 15:27

работа с классами
 
помогите разобраться
создал класс наследуемый от array
Код AS3:

package  SVoyGame 
{
        import flash.utils.ByteArray;
 
        public class ArrayPole extends Array
        {
                public function ArrayPole(sizey:int, sizex:int):void
                {
                        for (var yy:int = 0; yy < sizey ; yy++) {
                                ArrayPole[yy] = new ByteArray;
                                for (var xx:int = 0; xx < sizex ; xx++) {
                                        ArrayPole[yy][xx] = 0;
                                }
 
                        }

в основном тексте использую
Код AS3:

package 
{
        import flash.display.Sprite;
        import flash.events.Event;
        import SVoyGame.ArrayPole;
 
        public class Main extends Sprite
        {
                public function Main():void
                {
                        var pole:ArrayPole;
                        trace(pole[5][5]);

вот в этом месте и возникает ошибок
[Fault] exception, information=ReferenceError: Error #1069: Не удалось найти свойство 0 в SVoyGame.ArrayPole; отсутствует значение по умолчанию.
подскажите пожалуйста
как к этому массиву теперь обращаться

t4arty 04.06.2012 15:33

ByteArray не равен Array (ошибка типов переменных)

Партизан 04.06.2012 15:35

Код AS3:

var pole:ArrayPole = new ArrayPole(0,0);


Svoy4 04.06.2012 15:41

Цитата:

Сообщение от Партизан (Сообщение 1082830)
Код AS3:

var pole:ArrayPole = new ArrayPole(0,0);


да да пропустил строчку в вопросе она там есть перед выводом

Добавлено через 1 минуту
Цитата:

Сообщение от t4arty (Сообщение 1082829)
ByteArray не равен Array (ошибка типов переменных)

ByteArray как вложенность самого Array

Партизан 04.06.2012 15:47

Код AS3:

for (var yy:int = 0; yy < sizey ; yy++) { 
                                this[yy] = new ByteArray;
                                for (var xx:int = 0; xx < sizex ; xx++) {
                                        this[yy][xx] = 0;
                                }
 
                        }


Svoy4 04.06.2012 15:47

т.е. массив содержит массивы ByteArrey

Добавлено через 38 секунд
Цитата:

Сообщение от Партизан (Сообщение 1082837)
Код AS3:

for (var yy:int = 0; yy < sizey ; yy++) { 
                                this[yy] = new ByteArray;
                                for (var xx:int = 0; xx < sizex ; xx++) {
                                        this[yy][xx] = 0;
                                }
 
                        }


хм попробую

udaaff 04.06.2012 15:53

Код AS3:

dynamic public class ArrayPole extends Array


Svoy4 04.06.2012 15:56

this не прошел
[Fault] exception, information=ReferenceError: Error #1056: Не удается создать свойство 0 в SVoyGame.ArrayPole.
на строке this[yy]=new bytearray;

Партизан 04.06.2012 15:58

Цитата:

Сообщение от Svoy4 (Сообщение 1082841)
this не прошел

Udaaff написал выше почему

Svoy4 04.06.2012 15:59

Цитата:

Сообщение от udaaff (Сообщение 1082840)
Код AS3:

dynamic public class ArrayPole extends Array


не помогло
да и вообще это относиться только к классу (кажись)
а не к его экземпляру

Добавлено через 1 минуту
trace(ArrayPole[5][5]); в классе
выдает инфу
а в основном тексте уже нет

Добавлено через 6 минут
т.е. приложение запускается
объявляется pole:arraypole
конструктор срабатывает внутри класса выводит инфу
но не передает ее экземпляру
как то так получается


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

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