Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   Как использовать mx.core.Application в классе AS? (http://www.flasher.ru/forum/showthread.php?t=143068)

ovechkin 06.08.2010 12:36

Как использовать mx.core.Application в классе AS?
 
Пишу утильный класс типа
Код AS3:

package utils
{
public class Utils
        {
                public function Utils()
                {
                }
        //import *.*;
        import mx.core.Application;       
                public static function disableApplication(app:Application, time:String):void {
                        app.enabled = false;
                        if(time!=null) {
                                setTimeout(enableApplication, Number(time));
                        }
                }
 
                public static function enableApplication(app:Application):void {
                        app.enabled = true;
                }
        }
}
}

этот класс планируется использовать в другом классе, а не в mxml файле.
Конкретно - хочется вызывать функцию disableApplication с параметром Application.
Как передать этот параметр в функцию?

wvxvw 06.08.2010 14:06

Импорты принято писать вне определения класса. Ну и проверки типа time != null попахивают, а так вполне нормальный код.
Да, и используйте Timer вместо setTimeout.

ovechkin 06.08.2010 14:29

Цитата:

Сообщение от wvxvw (Сообщение 927472)
Импорты принято писать вне определения класса. Ну и проверки типа time != null попахивают, а так вполне нормальный код.
Да, и используйте Timer вместо setTimeout.

А вы вопрос мой прочитали?

wvxvw 06.08.2010 15:17

Да, а что именно не получилось? Например, этот код в вашем наследнике Application:
Код AS3:

Utils.disableApplication(this)


ovechkin 06.08.2010 15:38

wvxvw, я этот метод хочу использовать в другом классе, а не в mxml файле.
в этом то и проблема.
Надо как-то вычленить из mxml файла объект Application и передать его в функцию.

Код AS3:

import utils.Utils;
public class Foo {
    public function doSomething() {
          Utils.disableApplication( вот здесь должен быть объект класса Application, null);
    }
}

Кстати, за замечания спасибо!

wvxvw 06.08.2010 15:51

MXML файлы - это классы... так что вашу логику я как-то не улавливаю... пожалуйста.

ovechkin 06.08.2010 16:06

:)
Ну короче как в класс Utils передать объект Application ?

Добавлено через 4 минуты
я не знаю как ещё объяснить....
например так:

Код AS3:

public class SomeClass {
 
public function disableApp():void {
    Application.application.enabled = false;
}

Как добиться того, чтобы из другого класса использоваться объект Application?

Добавлено через 7 минут
Прошу прощения!!!
я только что написал именно так в классе SomeClass:
Код AS3:

public function disableApp():void {
  Application.application.enabled = false;
}

Не думал, что класс Application глобальный и виден ото всюду.

Ещё раз извините.

Волгоградец 06.08.2010 16:17

Передать сначала Application этому классу из самого Application.

wvxvw 06.08.2010 17:51

ovechkin: код нужно оформлять тегами [as3][/as3]. Application не глобальный класс. "Глобальным" класс становится когда он доступен из безымянного пакета. Использование Application.application - это костыль, и так делать не нужно никогда.


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

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