![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Mar 2002
Адрес: https://webhamster.ru
Сообщений: 107
|
Здравствуйте!
Есть у меня AS3 приложение с главным файлом Main.as, которое я компилирую с помощью команды "mxmlc Main.as". Мне нужно добавить хоть какой-нибудь прелоадер. Вот здесь написано, что вроде как достаточно сделать mxml файл, в котором нужно прописать: и у приложения появится какой-то стандартный прелоадер. В том же каталоге, где лежит файл Main.as, я сделал файл application.mxml со следующим содержимым: <?xml version="1.0"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:mx="library://ns.adobe.com/flex/mx" xmlns:s="library://ns.adobe.com/flex/spark" preloader="mx.preloaders.DownloadProgressBar" usePreloader="true"> <mx:Script source="Main.as"/> </s:Application> Цитата:
Вот здесь говорят, что нужно подключать пространство xmlns:mx="library://ns.adobe.com/flex/mx" - так оно у меня подключено. Еще обнаружил, что если вместо Main.as указать несуществующий файл - будет такая же ошибка. Что я делаю неправильно? Как простейшим образом добавить к AS3 приложению хоть какой-нибудь прелоадер? |
|
|||||
|
Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
|
FlashDevelop не пробовали? Там есть стандартный проект "AS3 Project with Preloader".
За вами останется только графика.
__________________
Загружаем картинки, минуя ошибки безопасности |
|
|||||
|
Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
|
Linux гораздо интереснее и занятнее.
|
|
|||||
|
Регистрация: Mar 2002
Адрес: https://webhamster.ru
Сообщений: 107
|
> Linux гораздо интереснее и занятнее.
То есть, специалитов тут нет, и по вопросу ответить никто не может? |
|
|||||
|
Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
|
Цитата:
package { import flash.display.DisplayObject; import flash.display.MovieClip; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.events.Event; import flash.events.IOErrorEvent; import flash.events.ProgressEvent; import flash.utils.getDefinitionByName; public class Preloader extends MovieClip { public function Preloader() { if (stage) { stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT; } addEventListener(Event.ENTER_FRAME, checkFrame); loaderInfo.addEventListener(ProgressEvent.PROGRESS, progress); loaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioError); // TODO show loader } private function ioError(e:IOErrorEvent):void { trace(e.text); } private function progress(e:ProgressEvent):void { // TODO update loader } private function checkFrame(e:Event):void { if (currentFrame == totalFrames) { stop(); loadingFinished(); } } private function loadingFinished():void { removeEventListener(Event.ENTER_FRAME, checkFrame); loaderInfo.removeEventListener(ProgressEvent.PROGRESS, progress); loaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, ioError); // TODO hide loader startup(); } private function startup():void { var mainClass:Class = getDefinitionByName("Main") as Class; if (parent == stage) stage.addChildAt(new mainClass() as DisplayObject, 0); else addChildAt(new mainClass() as DisplayObject, 0); } } } package { import flash.display.Sprite; import flash.events.Event; [Frame(factoryClass="Preloader")] public class Main extends Sprite { public function Main():void { if (stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init); } private function init(e:Event = null):void { removeEventListener(Event.ADDED_TO_STAGE, init); // entry point } } } |
|
|||||
|
Регистрация: Mar 2002
Адрес: https://webhamster.ru
Сообщений: 107
|
> Не надо быть специализдтом, чтобы написать прелоадер.
Этот прелоадер ничего не показывает. По вопросу стандартного прелоадера добился следующего. Код application.mxml сделал таким: <?xml version="1.0"?> <mx:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:mx="library://ns.adobe.com/flex/mx" preloader="mx.preloaders.DownloadProgressBar" usePreloader="true"> <fx:Script source="Main.as"/> </mx:Application> Цитата:
|
|
|||||
|
Регистрация: Jun 2006
Адрес: Москва
Сообщений: 461
|
Как бы намекает, что сюда надо самому написать появление графики прелоадера на сцене,
а вот это самому написать изменение состояния этого самого прелоадера ( изменение циферок + прогресс бар). |
|
|||||
|
Цитата:
В source тега Script нельзя вставить код класса, о чем завуалированно говорится в тексте ошибки. По-сути вы пытаетесь дописать код класса Main в класс Application. P.S. Не морочьте себе голову и воспользуйтесь кодом, который привел Bgg. Как-то так будет работать (это только направление куда копать, код не проверял): Но тут возникает вопрос, а стоит ли тащить за собой половину флек-фреймворка ради прелоадера. |
|
|||||
|
Регистрация: Mar 2002
Адрес: https://webhamster.ru
Сообщений: 107
|
Всё, всем спасибо. Сделал простейший прелоадер на базе кода что дал Bgg.
Результирующая флешка: http://www.multikov.net/animation.ph...000&data4=1072. За сим, забываю про Flex/Flash как про страшный сон. |
![]() |
![]() |
Часовой пояс GMT +4, время: 08:59. |
|
|
« Предыдущая тема | Следующая тема » |
|
|