![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Jul 2008
Сообщений: 912
|
Можно ли как-то отследить загрузку флешки самой себя? Есть класс со встроенными изображениями и и класс документ класс.
package resources{ public class Store{ [Embed(source = "../../store/menu/2011-11-22 17.15.35.jpg")] static private const img01:Class; [Embed(source = "../../store/menu/2011-11-22 19.30.37.jpg")] static private const img02:Class; [Embed(source = "../../store/menu/2011-12-19 13.30.21.jpg")] static private const img03:Class; [Embed(source = "../../store/menu/2012-02-04 15.58.52.jpg")] static private const img04:Class; [Embed(source = "../../store/menu/2012-02-24 17.26.25.jpg")] static private const img05:Class; [Embed(source = "../../store/menu/2012-03-05 11.01.04.jpg")] static private const img06:Class; [Embed(source = "../../store/menu/2012-03-25 16.11.18.jpg")] static private const img07:Class; public function Store() { } } } package { import flash.display.LoaderInfo; import flash.display.Sprite; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.events.Event; import flash.events.ProgressEvent; import resources.Store; public class MainClass extends Sprite { public function MainClass() { super(); addEventListener(Event.ADDED_TO_STAGE, init); } private function init(_event:Event = null):void { removeEventListener(Event.ADDED_TO_STAGE, init); stage.align = StageAlign.TOP_LEFT; stage.scaleMode = StageScaleMode.NO_SCALE; var store:Store = new Store(); loaderInfo.addEventListener(ProgressEvent.PROGRESS, progressListener); } private function progressListener(_event:ProgressEvent):void { trace(_event.bytesLoaded); } } } То что предлагает FD не хочется использовать Добавлено через 48 минут А если сделать так как у меня, то trace(_event.bytesLoaded); показывает что загрузка уже произошла. |
|
|||||
|
Регистрация: Dec 2010
Адрес: Ярославль
Сообщений: 1,255
|
Стандартный класс из fd от проекта as3 project with preloader прекрасно работает.
Только прогресс загрузки нужно отлавливать в классе прелоадера, а не в Main package { import flash.display.DisplayObject; import flash.display.MovieClip; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.events.Event; 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); } private function progress(e:ProgressEvent):void { trace(e.bytesLoaded / e.bytesTotal); } private function checkFrame(e:Event):void { if (currentFrame == totalFrames) { stop(); removeEventListener(Event.ENTER_FRAME, checkFrame); loaderInfo.removeEventListener(ProgressEvent.PROGRESS, progress); var mainClass:Class = getDefinitionByName("Main") as Class; addChild(new mainClass() as DisplayObject); } } } } 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); // точка входа в программу тут } } } |
|
|||||
|
Регистрация: Jul 2008
Сообщений: 912
|
Да понимаю, что нормально работает, но какая-то конструкция, такая... не нравится, неужели в самой себе нельзя прослушать?
|
|
|||||
|
Регистрация: Jul 2008
Сообщений: 912
|
Видимо прийдётся послушать FlashDevelop и не выдумывать...
|
![]() |
![]() |
Часовой пояс GMT +4, время: 16:13. |
|
|
« Предыдущая тема | Следующая тема » |
|
|