Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Вопрос про создание системы классов (http://www.flasher.ru/forum/showthread.php?t=98161)

Pasha L 07.07.2007 17:31

Вопрос про создание системы классов
 
Здравствуйте. Вопрос про создание своих классов. У меня флэш 8 профешинал. Как я понял, классы можно объявлять только в *.as файлах и только по одному классу в файле. Тогда как же осуществить такое вот дело:
Есть класс ТПлоскость (первый файл), внутри него есть массив из объектов класса ТТочка (его я объявлю уже в другом файле). Также, я хочу чтобы класс ТТочка содержал в себе ссылку на содержащюю её плоскость (на объект класса ТПлоскость). Как же всё это замутить? Может, нужно как-то файл с хэдерами сделать?

etc 07.07.2007 19:06

Не стоит использовать в именах классов Delphi-овские замашки.

Передать ссылку на плоскость можно через конструктор точки.

Pasha L 07.07.2007 19:17

Поподробнее можно? Напишите, пожалуйста, код небольшой, наглядный.

Это не "замашки", как вы выразились. Просто это удобно.

etc 07.07.2007 19:25

Это удобно в Delphi, но не в ActionScript.

Что именно непонятно в моих словах? Что такое конструктор и как передавать в него параметры, вы знаете?

Pasha L 07.07.2007 19:34

значит так:
я должен просто создать необходимые файлы с необходимыми классами в них. Ничего, что, к примеру, класс А фигурирует в описании класса Б и наоборот. Я создаю эти файлы. Затем уже во фла-файле я просто пишу #include файлов А и Б ?

--

Почему неудобно такое оформление?

etc 07.07.2007 19:46

Не include, а import. Я не очень понял, где вы собираетесь создавать экземпляры класса Б и что конкретно хотите сделать. В А создаются экземпляры Б, в конструктор которых передается ссылка на А (this, проще говоря).

з.Ы. Неудобно тем, что никакой пользы буква «T» в себе не несет, совершенно. Только лишний раз её набрать. Стандарт именования во ActionScript не такой, как в Delphi, где что переменные, что методы, что классы — все под одну гребенку начинаются с прописной буквы и «T» в названии лишь говорит, что TWindow — это класс, а Window может быть методом, переменной и чем угодно. Во ActionScript названия переменных, методов, свойств начинаются со строчной буквы. С прописной только названия классов и константы (названия констант целиком в верхнем регистре).

Pasha L 07.07.2007 19:55

Так. Ещё раз просьба: напишите небольшой код из двух классов :)

А насчет стандартов - да черт с ними, кому как удобно

etc 07.07.2007 20:16

Код:

class MyPoint {
    private var _plane:Plane;
    public function MyPoint(plane:Plane) {
        this._plane = plane;
    }
}

Код:

class Plane {
    public function Plane() {
        for (var i:Number = 0;i < 10;i++) {
              var point:MyPoint = new MyPoint(this);
        }
    }
}


Pasha L 07.07.2007 20:39

Проверяю ошибки в этих скриптах:
Цитата:

**Error** D:\Новая папка\Plane.as: Line 1: The name of this class, 'Plane', conflicts with the name of another class that was loaded, 'Plane'.
class Plane {

Total ActionScript Errors: 1 Reported Errors: 1


и



Цитата:

**Error** D:\Новая папка\Plane.as: Line 1: The name of this class, 'Plane', conflicts with the name of another class that was loaded, 'Plane'.
class Plane {

Total ActionScript Errors: 1 Reported Errors: 1

etc 07.07.2007 21:00

Проекты нельзя хранить в папках с русскими названиями.


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

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