Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Flash приложение (http://www.flasher.ru/forum/showthread.php?t=188591)

DmMatveev 03.12.2012 23:54

Flash приложение
 
Здравствуйте, разрабатываю код будущей игры. Решил сделать такую структуру игры. Главный файл, регистрируется на сервере, получает данные о пользователе, потом начинает работу свой класс Preloader, он начинает загружать файлы игры. После загрузки второстепенных файлов, программа запускает класс GUI, который отображает все что загрузилось на сцене. Хотел бы, что бы вы чего-нибудь посоветовали..

Привет первые наброски.
//Главный Класс
Код AS3:

package src.main
{
 
        import vk.APIConnection;
        import src.lap.FirstLap;
        import flash.display.MovieClip;
        import flash.events.Event;
 
        public class TwoGuns extends MovieClip
        {
                var flashVars:Object;
                var VK:APIConnection;
 
                public function TwoGuns()
                {
                        addEventListener(Event.ADDED_TO_STAGE, init);
                }
 
                function init(e:Event):void
                {
                        removeEventListener(Event.ADDED_TO_STAGE, init);
 
                        flashVars = stage.loaderInfo.parameters as Object;
 
                        if (! flashVars.api_id)
                        {
                                flashVars['api_id'] = 3252185;
                                flashVars['viewer_id'] = 101471034;
                                flashVars['sid'] = "ab60794b0ddae8653739d51cc44158b3205c87d865715388e90f6b15bc83bc";
                                flashVars['secret'] = "159ce7af6e";
                        }
 
                        VK = new APIConnection(flashVars);
 
                        var firstLap:FirstLap = new FirstLap(VK, flashVars);
                }
        }
}


Код AS3:

package src.lap
{
        import vk.APIConnection;
        import src.lap.Preload;
 
        public class FirstLap
        {
 
                public function FirstLap(VK:APIConnection, flashVars:Object)
                {
                        firstLap(VK, flashVars);
                }
 
                function firstLap(VK:APIConnection, flashVars:Object):void
                {
 
                        VK.api("isAppUser", {}, isAppUserTrue, isAppUserFalse);
 
                        function isAppUserTrue(data:Object):void
                        {
                                isDataBase(flashVars['viewer_id']);
                        }
 
                        function isAppUserFalse(data:Object):void
                        {
                                trace('Добавить приложение!');
                        }
 
                        function isDataBase(id:Number):void
                        {
                                trace('Проверка, существует ли данный пользователь в базе id ' + id);
                                var isDataBase:Boolean = true;//Временное значение
 
                                if (! isDataBase)
                                {
                                        trace('Регистрация ' + id);
                                        isDataBase = true;//Временное значение
                                }
 
                                if (isDataBase)
                                {
                                        trace('загрузка');
                                        var loader:Preload = new Preload();
 
                                } else
                                {
                                        trace('Ошибка при регистрации');
                                }
                        }
                }
        }
 
}



Код AS3:

package src.lap
{
        import flash.display.Loader;
        import flash.net.URLRequest;
        import flash.display.MovieClip;
        import flash.events.Event;
 
        public class Preload extends MovieClip
        {
                public var loader:Loader;
                public var request:URLRequest;
                private const ARRAY_DOWNALDS:Array = new Array('http://cs10646.userapi.com/u1417875/e_9eb6acc4.jpg');
 
                public function Preload()
                {
                        request = new URLRequest(ARRAY_DOWNALDS[0]);
                        loader = new Loader();
                        loader.load(request);
                        loader.contentLoaderInfo.addEventListener(Event.COMPLETE, imgLoaded)
                }
 
                function imgLoaded(e:Event)
                {
                        loader.x = 150;
                        loader.y = 150;
                        addChild(loader)
                }
        }
}


И еще вопрос, почему класс Preloader, после загрузки файла не отображает загруженную картинку? Спасибо.
Не судите строго, изучаю не так много.

Frost47rus 05.12.2012 02:25

Мои глаза медленно вытекают...
Изучаете немного, говорите? Вернитесь лучше к азам.
DisplayObjectContainer - и манипулирование с ним...
Событийность...
Понятие линейного выполнения кода...
Вы не понимаете сути того, что пишете и что происходит (и что должно происходить). А без Вашего понимания - Вы обрекаете любого советчика на абсолютно бесполезный труд.
Ещё раз повторюсь - возвращайтесь к азам. Пока не поздно. (и если Вас конечно интересует программирование в принципе).
Хотя, судя по характеру кода и намеренному влезанию в апи уютненького - Вы просто хотите перед кем-то выпендриться.

caseyryan 05.12.2012 08:43

Цитата:

И еще вопрос, почему класс Preloader, после загрузки файла не отображает загруженную картинку?
А где, по вашему, он должен ее отобразить? Сам класс Preloader не доавлен в дисплей лист. То, что картинка добавляется в него, не значит, что она должна в принципе отобразиться на экране. Нет в дисплей листе контейнера, нет и его содержимого. Логично?

п.с. Класс FirstLap вообще работает?
В нем вообще структура кривая. Нужно избавляться от вложенных функций и выносить их на уровень класса. Так же не мешало бы добавить функциям модификаторы доступа. Тут можно всем добавить private.
Пока в них по умолчанию используется internal.
Советую так же почитать про модификаторы доступа.


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

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