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

eXplozive 11.01.2008 13:18

Вопрос о видимости переменных
 
Всем доброго дня. Вот возник следущий вопрос - например пишу в классе:

Код:


private        function loadImage(){
        trace(loadCounter);
        _root.onEnterFrame = function(){
                trace(loadCounter);
                }
        }

Переменная loadCounter объявлена заранее, но первый трейс который вне onEnterFrame ее нормально трейсит а в самом onEnterFrame переменную не видно. Подскажите в чем дело.

chingachgoog 11.01.2008 13:48

а где loadCounter объявлена? в руте?

eXplozive 11.01.2008 13:57

нет... в классе

что-то типа этого:

Код:


class wi.InterfaceBuilder extends MovieClip {

        private var loadCounter:Number;

        public function InterfaceBuilder(data){

                loadCounter=0;
                loadImage();

        }

        private        function loadImage(){
                trace(loadCounter);
                _root.onEnterFrame = function(){
                        trace(loadCounter);
                }
        }

}


etc 11.01.2008 14:06

Методы в методах не пишут.

olexandr 11.01.2008 14:09

могу ошибиться, конечно, но, по-моему, чтобы переменная была видна таким способом, она должна быть static, а не private и public...

chingachgoog 11.01.2008 14:21

А как же рут увидит var, да еще и private?
Код:

private var loadCounter:Number;

CrazyFlasher 11.01.2008 15:25

Код:

import mx.utils.Delegate;

class wi.InterfaceBuilder extends MovieClip {

        private var loadCounter:Number;

        public function InterfaceBuilder(data){

                loadCounter=0;
                loadImage();

        }

        private        function loadImage(){
                trace(loadCounter);
                _root.onEnterFrame = Delegate.create(this, traceMe);
               
        }
        private function traceMe(){
            trace(loadCounter);
        }

}

а так?


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

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