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

DDDBest 30.05.2014 19:50

что в переменной
 
Здравствуйте, я когда то занимался делфи, писал там что то, все понятненько мне было вродь, сейчас заморочился экшнскриптом, читаю Колина Мука, прочитал что там доходчиво все, так вот не понимаю многого, постарел видать, начну с самого начала:

файл x1.as

Код AS3:

package x {
        public class x1 {
                public function x1() {
                        var y = new y1;
                }
        }
}

файл y1.as

Код AS3:

package x {
        internal class y1 {
        }
}

вот блин, создание объекта класса y1 - new y1, присваивание переменной "y" объекта класса y1 - var y = new y1;
Вот не пойму, чем стала переменная игрек? Если к примеру, как в делфях там было что то типо
string var y = "woohu";
Label1Text = y; тобишь отображаем значение переменной y на label1. Так вот, если подобным примером в экшнскрипте отобразить значение переменной y на экран в формате string (строки), то что это будет? Вот не пойму во что превратилась y при var y = new y1;
Спасибо!

Wolsh 30.05.2014 20:14

Переменная "стала" экземпляром класса у1.
На самом деле переменная хранит ссылку(!) на экземпляр.
Если бы Вы присвоили ей строковое значение, она хранила бы значение (строки и числа передаются по значению, а не по ссылке).
Если Вы попытаетесь "вывести на экран в формате string (строки)" экземпляр класса у1, будет автоматически вызван метод toString() класса у1 (унаследованный от Object), который вернет строковое представление экземпляра (скорее всего "[Object y1]").

caseyryan 30.05.2014 20:15

Ну так сделайте так
Код AS3:

trace(y);

И в консоль выведет, что это [Object y1]
Так как переменная является экземпляром класса y1. AS3 типизированный язык, и каждая переменная имеет свой тип данных

Добавлено через 49 секунд
Wolsh, опередил )

MikroAcse 30.05.2014 23:48

Код AS3:

var y:y1 = new y1();

Код AS3:

var название_переменной:Тип = new Класс();

Если будете писать так, то точно будете знать, что переменная имеет конкретный тип.

caseyryan 30.05.2014 23:53

Тогда уж правильнее писать
Код AS3:

var название_переменной:Тип = new Тип();


MikroAcse 30.05.2014 23:57

А если так?
Код AS3:

var vehicle:Vehicle = new Tank()


in4core 31.05.2014 00:09

Цитата:

А если так?
Код AS3:
var vehicle:Vehicle = new Tank()
Не так, а так
Цитата:

var vehicle:IVehicle = new Tank()
Тогда так :)

MikroAcse 31.05.2014 00:22

Цитата:

Тогда так
Это как-то изменило мой ответ? :)

Wolsh 31.05.2014 00:28

Кейси, Типом может быть и Интерфейс, который, как известно, не может породить экземпляров))

во, in4core уже продемонстрировал.
И нет, не изменило)

DDDBest 31.05.2014 03:33

Спасибо! А вот:
Код AS3:

trace(y);

это где прописать? А вот:
Цитата:

И в консоль выведет, что это [Object y1]
В какую консоль?=)
У меня FlashDevelop
И вот что не понятно еще, в книге описан чисто код, без компиляции, в делфи там было сразу форма главная, там прописано что нужно уже, и ты с нее начинаешь, в FlashDevelop же чтоб откомпилировать нужно проэкт новый, а там main.as, и никуда без него, как мне компилировать те простенькие примеры из книги, которые там приводятся? Основным файлом с точкой входа какой то=) с основным классом брать main.as а не тот файл, который автор советует создавать в книге?


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

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