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

cervikx 08.09.2011 19:53

Работа с несколькими классами
 
Добрый вечер. Я умею работать с 1 классом as 3.0.
Сейчас мне стало не удобно работать с 1 классом т.к. получился большой объём кода.
Дак вот собственно вопрос:

Допустим я создал 2 класса. 1 основной - Main и дополнительный - Data.
Как добавить класс Data в приложение?
Как передать в этот класс переменную variable в класс Data из Main?
Как вызвать функцию Data класса Data из класса Main?

dimarik 08.09.2011 21:49

в Main

Код AS3:

/* Как добавить класс Data в приложение? */
var data:Data = new Data();
 
/* Как передать в этот класс переменную variable в класс Data из Main? */
var variable:String = "Значение переменной";
data.variable = variable;
 
trace(data.variable);// output "Значение переменной"
 
/* Как вызвать функцию Data класса Data из класса Main? */
data.doSomething();

Код AS3:

class Data {
 
    public var variable:    String;
 
    public function doSomething():void {
        trace("Вызван метод doSomething");
    }
 
}


Zebestov 08.09.2011 21:54

Два файла.

Первый: Main.as

Код AS3:

package
{
    public class Main extends Sprite
    {
 
        private var dataObject:Data;
 
        public function Main()
        {
            var anyVar:* = "Any value";
            this.dataObject = new Data(anyVar);
            this.dataObject.data();
        }
    }
}

Второй: Data.as

Код AS3:

package
{
    public class Data
    {
 
        private var incomingVar:*;
 
        public function Data(arg:*)
        {
            this.incomingVar = arg;
        }
 
        public function data():void
        {
            // do something
        }
    }
}

Добавлено через 1 минуту
То никого, то все сразу :)

dimarik 08.09.2011 22:04

this! [x]

wolhw 08.09.2011 22:58

Код AS3:

package
{
public class Data extends Main
{
}
}

работаем с дата как с мейн

Zebestov 08.09.2011 23:03

wolhw, ну вот не боишься, что сейчас достанем линейки надаём по рукам а?:quiet:

cervikx 08.09.2011 23:05

А ты можешь пожалуйста расписать подробнее про передачу переменных в другой класс.
Допустим в классе Main создаётся кнопка при нажатии на которую переменной variable добавляется 1.
Класс data получает эту переменную и увеличивает значение ещё на 1 и выводит её в textField.
Притом значение переменной variable нужно чтобы изменилось и в классе Main.
Как в таком случае осуществлять передачу этой переменной?
Хотелось чтобы можно было использовать эту переменную без передачи туда - сюда...

dimarik 08.09.2011 23:11

Запятые очень обижаются, когда их игнорируют. Вот вам немного запятых:,,,,,,. Расставьте в своем посте.

wolhw 08.09.2011 23:14

Zebestov
Цитата:

Сообщение от cervikx (Сообщение 1029482)
Сейчас мне стало не удобно работать с 1 классом т.к. получился большой объём кода.

ну если всего 1 класс в приложении можно и разбить на 2а сделать все методы и вары протектед и ничего никуда передавать ненужно)

Добавлено через 10 минут
cervikx
Код AS3:

package
{
 
public class Main
 
protected var r1:String="allo"; //переменная в класе Мейн
 
public function Main()
{
}
protected function traser():void
{ trace(r1); }
{
}
}

Код AS3:

package
{
 
public class data extends Main //тут важно!
{
public function data()
{
trace(r1);//получим -- allo
r1="privet";
tracer();// --- privet
}
}
}


Dukobpa3 09.09.2011 00:16

Просит таки линейки, да. Еще раз такой совет и начнем скидываться.

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


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

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