Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 18.01.2007, 17:32
Futs вне форума Посмотреть профиль Отправить личное сообщение для Futs Найти все сообщения от Futs
  № 11  
Ответить с цитированием
Futs
 
Аватар для Futs

Регистрация: Jun 2004
Адрес: Москва
Сообщений: 475
Типа за каждый пост не во флейм, пару байтов в мозг

Старый 18.01.2007, 17:50
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 12  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
смотря для чего оно надо.., а то можно и по-простому ссылками обменяться, не привлекая для этого диспатчер:
Код:
class Class1{
	public function fun1() {
		//бла-бла
	}
	public function fun2() {
		//бла-бла
		Class2.fun3(this)
	}
}
//
class Class2{
	public static function fun3(obj) {
		//бла-бла
		obj.fun1()
	}
}

Старый 22.01.2007, 15:34
Futs вне форума Посмотреть профиль Отправить личное сообщение для Futs Найти все сообщения от Futs
  № 13  
Ответить с цитированием
Futs
 
Аватар для Futs

Регистрация: Jun 2004
Адрес: Москва
Сообщений: 475
To __etc спасибо еще раз. Сегодня сел разбираться все получилось, т.е. нужно подписывать ту функцию, которую использую из другого класса. А как можно поступить так же с переменными, чтобы можно было видеть переменные первого класса во втором и если надо менять их. А может разумнее создать класс для переменных и хранить их там. Но тогда не хочется писать VarClass.myVar, может есть какой другой красивый способ?

Старый 22.01.2007, 15:46
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 14  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Ну не знаю, насколько оно красиво, но передавать можно ссылку на первый класс. Но тогда будет жесткая связь.

Лучше на событийной модели, вещать из второго класса первому, чтобы тот поменял параметр.

Старый 22.01.2007, 15:57
Futs вне форума Посмотреть профиль Отправить личное сообщение для Futs Найти все сообщения от Futs
  № 15  
Ответить с цитированием
Futs
 
Аватар для Futs

Регистрация: Jun 2004
Адрес: Москва
Сообщений: 475
Но ведь не получается писать жестко var myVarClass2 = Class1.myVarClass1
Он ругается: имя мол конфликтует

Старый 22.01.2007, 16:08
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 16  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Не надо путать статические свойства с обычными.
Код:
import mx.events.EventDispatcher;
class AnyClass {
    public var addEventListener:Function;
    public var removeEventListener:Function;
    public var dispatchEvent:Function;
    
    private var otherClass:OtherClass;

    public var anyVariable:Number;

    public function AnyClass(otherClass:OtherClass) {
        EventDispatcher.initialize(this);

        this.anyVariable = 5;
        this.addEventListener("onAnyClassEvent",otherClass);
        otherClass.addEventListener("onOtherClassEvent",this);
        otherClass.anyClass = this;

        this.otherClass = otherClass;
        this.sendMessage();
    }

    private function sendMessage():Void {
        this.dispatchEvent({type:'onAnyClassEvent',data:'test'});
    }

    private function onOtherClassEvent(event:Object):Void {
        trace('Class AnyClass received event from OtherClass data: '+event.data+', anyVariable = '+this.anyVariable);
    }
}
Код:
class OtherClass {
    public var addEventListener:Function;
    public var removeEventListener:Function;
    public var dispatchEvent:Function;

    public var anyClass:AnyClass;

    public function OtherClass() {
        EventDispatcher.initialize(this);
    }

    private function onAnyClassEvent(event:Object):Void {
        trace('Class OtherClass received event from AnyClass data: '+event.data);
        if (this.anyClass) {
            this.anyClass.anyVariable = 10;
        }
        this.dispatchEvent({type:'onOtherClassEvent',data:'hello'});
    }
}

Старый 22.01.2007, 16:16
Futs вне форума Посмотреть профиль Отправить личное сообщение для Futs Найти все сообщения от Futs
  № 17  
Ответить с цитированием
Futs
 
Аватар для Futs

Регистрация: Jun 2004
Адрес: Москва
Сообщений: 475
Получается та же история, как и с функциями, да...

Старый 22.01.2007, 16:55
Futs вне форума Посмотреть профиль Отправить личное сообщение для Futs Найти все сообщения от Futs
  № 18  
Ответить с цитированием
Futs
 
Аватар для Futs

Регистрация: Jun 2004
Адрес: Москва
Сообщений: 475
Вообще-то он ругается как и раньше, я думал у меня ошибка, но сохранил твой код, тоже самое
Код:
The name of this class, 'OtherClass', conflicts with the name of another class that was loaded, 'OtherClass'.

Старый 22.01.2007, 16:59
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 19  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Я же говорю — в событии посылаешь нужное значение параметра и вызываешь событие, которое и будет менять значение.

Ругается? Удали ASO файлы (Control > Delete ASO Files) или перемести проект в другую папку.

Старый 22.01.2007, 17:06
Futs вне форума Посмотреть профиль Отправить личное сообщение для Futs Найти все сообщения от Futs
  № 20  
Ответить с цитированием
Futs
 
Аватар для Futs

Регистрация: Jun 2004
Адрес: Москва
Сообщений: 475
Не помогает

Создать новую тему Ответ Часовой пояс GMT +4, время: 19:38.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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