Форум 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)
-   -   Delegate. (http://www.flasher.ru/forum/showthread.php?t=97270)

Torero 17.06.2007 10:20

Delegate.
 
Добрый день.
Помогите пожалуйста: переменная m не попадает в область видимости функции, хотя я запускаю эту функцию используя Delegate. В чем ошибка?


Код:

public var m:Number;
        public function C(){
                test();
        }
        public function test():Void{
                m=7;
                var n:Number;
                n=9;
                Delegate.create(this, fun());
                function fun(){
                        trace("1. "+m+ ";  2. "+n); //        m=Undefined  n=9
                }
        }


iNils 17.06.2007 15:04

Создавать фунцию в методе не хорошо. И Delegate Не нужен.
Код:

public var m:Number;
        public function C(){
                test();
        }
        public function test():Void{
                m=7;
                var n:Number;
                n=9;
                fun(n);
        }
        function fun(n:Number){
                trace("1. "+m+ ";  2. "+n); //
        }
}

Кроме того, Delegate используется не правильно. Скобки после fun не нужны
Код:

Delegate.create(this, fun());

Torero 17.06.2007 20:29

Цитата:

Создавать фунцию в методе не хорошо.
Приходится... Тем не менее, вопрос остается в силе. Как сделать внутри функции fun видимыми переменные определенные на уровне класса? (Кроме приравнивания их значений переменным, определенным на уровне test)

screamge 17.06.2007 20:33

Ну храните переменные в приватных свойствах, проблем с видимостью не будет, только фнкция в методе это действительно плохо.

etc 17.06.2007 20:36

Цитата:

Сообщение от Torero
Приходится... Тем не менее, вопрос остается в силе. Как сделать внутри функции fun видимыми переменные определенные на уровне класса? (Кроме приравнивания их значений переменным, определенным на уровне test)

В данном приведенном случае никаких объявлений функций в методах и использование Delegate не нужно.


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

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