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

Dr.XxX 07.06.2008 16:41

Связывание классов
 
Можно ли как-то связать классы.
Тоесть, если в классе "B" стоит условие
if (x == 10),
то в определённых классах, к примеру, свойство _alpha меняется на 10 ?

MrPoma 07.06.2008 16:44

Можно.

зы: у Вас условие неправильно составлено.

Dr.XxX 07.06.2008 16:49

Описка вышла =)

А не могли бы сказать, как это можно реализовать ?

Волгоградец 07.06.2008 16:59

Можно в классе B сделать статический метод
Код:

public static function isCondition ():Boolean {
  if (x == 10){
      return true;
  } else {
      return false;
  }
}

И в каждом классе проверять:
Код:

if (B.isCondition){
  mc._alpha -= 10;
}


Dr.XxX 07.06.2008 19:06

Спасибо

Dr.XxX 09.06.2008 21:22

А если мне надо, чтобы функция isCondition выдавала труе или фалсе, только после нажатии определённой клавиши.
Как это можно реализовать ?
Код:

public static function isCondition ():Boolean {
          keyListener.onKeyUp = function ()
  {
if(Key.Ascii == 40)
{
  if (x == 10){
      return true;
  } else {
      return false;
    }
  }
}
}

Выдаёт ошибку =\

wvxvw 09.06.2008 22:04

Нужно isCondition вызывать по событию нажатия на клавишу, а не наоборот. Откуда по-вашему функция должна знать, какая клавиша сейчас нажата, если ее вызов никак с нажатием не связан?
Код:

KeyListener.init();
Код:

class KeyListener {
        public static function init():Void {
                Key.addListener(KeyListener);
        }
        public static function onKeyDown():Void {
                trace(Key.getAscii());
        }
}


Dr.XxX 12.06.2008 20:51

А можете сказать почему постоянно выдаёт (if(B.isCondition)) - [type function], а не true или false;

Код:

class B {
        public static var x:Number = null;
        public static function init():Void {
                Key.addListener(B);
                x = 0;
        }
        public static function onKeyDown():Void {
                if (Key.getAscii() == 49) {
                        isCondition();
                }
        }
        public static function isCondition():Boolean {
                if (x == 10) {
                        return true;
                } else {
                        return false;
                }
        }
}


Fernando Costa 12.06.2008 21:01

потому-что у вас это функция а не геттер

Dr.XxX 13.06.2008 16:40

Спасибо, разобрался =)


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

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