Форум 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=188163)

Mkey 29.11.2012 17:05

Ругается на создание массива
 
Код AS3:

package{
        import flash.display.*;
        import flash.events.*;
        public class Hostile extends MovieClip
        {
                public var Light:int=2;
                public var id:String="t";
                public var speed:int=1;
                public var Checkpoint:Array;
                Checkpoint=new Array();

,
Ругается на два последних куска кода("1120: Access of undefined property Checkpoint."). В чем могут быть проблемы?

GBee 29.11.2012 17:12

Как ругается?

Mkey 29.11.2012 17:14

1120: Access of undefined property Checkpoint.

Добавлено через 4 минуты
Блин, а почему в конструкторе не ругается?=\

TWETTI 29.11.2012 17:24

Правильно писать так:
Код AS3:

public var Checkpoint:Array = [];


Dip52 29.11.2012 17:26

Цитата:

Сообщение от TWETTI (Сообщение 1106883)
Правильно писать так:
Код AS3:

public var Checkpoint:Array = [];


Ошибка будет той же. Можете объяснить почему так нужно писать?

TWETTI 29.11.2012 17:37

Ошибки быть не должно. Инициализировать переменные надо либо в контрукторе либо сразу после объявления. Массив создается быстрее если его инициализировать [], а не new Array().

Dip52 29.11.2012 17:39

Цитата:

Сообщение от TWETTI (Сообщение 1106890)
Ошибки быть не должно. Инициализировать переменные надо либо в контрукторе либо сразу после объявления. Массив создается быстрее если его инициализировать [], а не new Array().

Код AS3:

//Определяю пакет:
package src {
        import flash.display.MovieClip;
        //Объявляю класс test:
        public class test extends MovieClip
        {
                //Определяю массив:
                public var array:Array = [];
                //Устанавливаю массив:
                array = new Array();
                //Объявляю конструктор:
                public function test()
                {
 
                }
        }
 
}

Описание ошибки: Обращение несуществующего свойства array.

TWETTI 29.11.2012 17:44

Все правильно. Объект еще не создан, а вы уже обращаетесь к его свойствам. Объект будет создан когда вызовится конструктор.
Зачем писать
Код AS3:

array = new Array();

?
Вы уже инициализировали пустой написав [];

AlexLucas 29.11.2012 17:46

Либо
Код AS3:

package{
        import flash.display.*;
        import flash.events.*;
        public class Hostile extends MovieClip
        {
                public var Light:int=2;
                public var id:String="t";
                public var speed:int=1;
                public var Checkpoint:Array = new Array();

либо инициализируйте переменную в теле какой-нибудь функции (в том же конуструкторе).
Потому что ООП?

Dip52 29.11.2012 17:50

Цитата:

Сообщение от TWETTI (Сообщение 1106892)
Все правильно. Объект еще не создан, а вы уже обращаетесь к его свойствам. Объект будет создан когда вызовится конструктор.
Зачем писать
Код AS3:

array = new Array();

?
Вы уже инициализировали пустой написав [];

Значит:
var array:Array = []
и
array = new Array();
Одинаковые. Спасибо.
Можете подсказать, если знаете, как можно использовать эти различия?


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

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