Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Компилятор не видит классы List и DataProvider (http://www.flasher.ru/forum/showthread.php?t=144629)

MetSerp 16.09.2010 18:44

Компилятор не видит классы List и DataProvider
 
Здравствуйте.
Хочу использовать объект List для отображения информации пользователю, в приложении интерактивной карты. Столкнулся со следующей проблеммой:
импортирую нужные классы на уровне пакета
Код AS3:

        import fl.controls.List;
        import fl.data.DataProvider;

объявляю свойства
Код AS3:

                static var scpdLocContentTree:List;
                static var scpdLocContentTreeDataProvider:DataProvider;

перед работой с объектом создаю его экземпляр
Код AS3:

                                DialogWindows.scpdLocContentTree= new List();
                                DialogWindows.scpdLocContentTreeDataProvider = new DataProvider ();

пытаюсь взаимодействовать с объектом
Код AS3:

DialogWindows.scpdLocContentTreeDataProvider.addItem ({labels:'Монстры',contentXML:monsters});
                                DialogWindows.scpdLocContentTreeDataProvider.addItem ({labels:'Ресурсы',contentXML:resource});
                                DialogWindows.scpdLocContentTreeDataProvider.addItem ({labels:'Внутренние локации',contentXML:subLoc});
                                DialogWindows.scpdLocContentTree.dataProvider = scpdLocContentTreeDataProvider;
                                DialogWindows.scpdLocContentTree.labelField = 'labels';

и при компиляции получаю ошибку
Цитата:

путькфайлу\map\msl\DialogWindows.as, строка 7 1172: Не удалось найти определение fl.data:DataProvider.
путькфайлу\map\msl\DialogWindows.as, строка 6 1172: Не удалось найти определение fl.controls:List.
и остальные ошибки вытекающие из этих, то есть невозможность обратиться к неопределенному свойству и.т.п.
Прочел справку по компоненту List, там в примере он импортируется на уровне класса, убрал импортирование на уровне пакета, добавил на уровне класса, как и ожидалось проблему это не решило.
Поскольку на AS это моя первая работа, варианты "почему так происходит" у меня уже кончились, прошу помощи.
Вот весь код класса (это черновой набросок).
Код AS3:

package msl{
        import flash.display.Sprite;
        import flash.text.TextField;
        import fl.controls.List;
        import fl.data.DataProvider;
 
        public class DialogWindows extends Sprite {
                const SHOW_COORD_POINT_DETAILS = 'scpd';
                const SEARCH = 's';
                const SEARCH_RESULT = 'sr';
                const EDIT_COORD_POINT = 'ecp';
                const ERROR = 'e';
                static var body:Sprite;
                static var winTitle:TextField;
                static var scpdLocName:TextField;
                static var scpdXPos:TextField;
                static var scpdYPos:TextField;
                static var scpdTurnLEFT:Turn;
                static var scpdTurnRIGHT:Turn;
                static var scpdTurnUP:Turn;
                static var scpdTurnDOWN:Turn;
                static var scpdTurnLEFTBtn:Sprite;
                static var scpdTurnRIGHTBtn:Sprite;
                static var scpdTurnUPBtn:Sprite;
                static var scpdTurnDOWNBtn:Sprite;
                static var scpdIsRoad:Boolean;
                static var scpdLocContentTree:List;
                static var scpdLocContentTreeDataProvider:DataProvider;
                public function DialogWindow (type:String, ...variableArray) {
                        switch (type) {
                                case SHOW_COORD_POINT_DETAILS :
                                        showCoordPointDetailsWindow (variableArray);
                                        break;
                                case SEARCH :
                                        searchWindow (variableArray);
                                        break;
                                case SEARCH_RESULT :
                                        searchResultWindow (variableArray);
                                        break;
                                case EDIT_COORD_POINT :
                                        editCoordPointWindow (variableArray);
                                        break;
                                default :
                                        errorWindow ();
                        }
                }
                function showCoordPointDetailsWindow (...varArray):Sprite {
                        var monsters:XMLList = new XMLList(Main.mapXML.meridian[varArray[0] + 15].paralell[varArray[1] + 15].monsters);
                        var resource:XMLList = new XMLList(Main.mapXML.meridian[varArray[0] + 15].paralell[varArray[1] + 15].resource);
                        var subLoc:XMLList = new XMLList(Main.mapXML.meridian[varArray[0] + 15].paralell[varArray[1] + 15].subLoc);
                        try {
                                if (varArray.length == 0) {
                                        throw new Error('Методу не переданы параметры. Возможно произошла внутренняя ошибка среды Flash player, закройте данное окно и повторите вызов');
                                }
                                DialogWindows.winTitle = DialogWindows.scpdXPos = DialogWindows.scpdYPos = DialogWindows.scpdLocName = new TextField();
                                DialogWindows.scpdLocContentTree= new List();
                                DialogWindows.scpdLocContentTreeDataProvider = new DataProvider ();
                                DialogWindows.scpdTurnLEFT = new Turn(varArray[3]);
                                DialogWindows.scpdTurnRIGHT = new Turn(varArray[4]);
                                DialogWindows.scpdTurnUP = new Turn(varArray[5]);
                                DialogWindows.scpdTurnDOWN = new Turn(varArray[6]);
                                DialogWindows.scpdTurnLEFTBtn = DialogWindows.scpdTurnRIGHTBtn =DialogWindows.scpdTurnUPBtn = DialogWindows.scpdTurnDOWNBtn = DialogWindows.body = new Sprite();
                                DialogWindows.scpdLocContentTreeDataProvider.addItem ({labels:'Монстры',contentXML:monsters});
                                DialogWindows.scpdLocContentTreeDataProvider.addItem ({labels:'Ресурсы',contentXML:resource});
                                DialogWindows.scpdLocContentTreeDataProvider.addItem ({labels:'Внутренние локации',contentXML:subLoc});
                                DialogWindows.scpdLocContentTree.dataProvider = scpdLocContentTreeDataProvider;
                                DialogWindows.scpdLocContentTree.labelField = 'labels';
 
                        } catch (e:Error) {
                                trace ('Произошла ошибка: '+ e.message);
                        }
                        return DialogWindows.body;
 
                }
                function searchWindow (...varArray) {
 
                }
                function searchResultWindow (...varArray) {
 
                }
                function editCoordPointWindow (...varArray) {
 
                }
                function errorWindow (...varArray) {
 
                }
 
        }
 
}


leofit 16.09.2010 19:26

А Вы положили экземпляр компонента в библиотеку?

MetSerp 17.09.2010 00:22

Цитата:

Сообщение от leofit (Сообщение 936481)
А Вы положили экземпляр компонента в библиотеку?

а вот про эту особенность я забыл:rolleyes: Спасибо, именно оно и есть.

easy.proger 17.09.2010 02:34

Цитата:

Сообщение от MetSerp (Сообщение 936539)
особенность

Особенность О_О ? Не я конечно понимаю, что читать книжки скучно, но хотя базу ? не ? совсем не как ? ((


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

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