![]() |
|
||||||||||
|
|||||
|
Приветствую. Не могу понять в чем проблема.. Всегда во FlashDevelope делал как вот тут описано:
http://www.onegiantmedia.com/compili...-flash-library и все было хорошо. прелоадилось как надо. но последний проект почему то глючит. все сделано идентично, но почему то прелоадер показывает 0, через какое то время сразу 100. я догадываюсь что вся шняга почему то суется в первый фрейм, но почему не понимаю. во флеше все экпортится во 2 фрейм, в SWC. на таймлайне вообще нет ничего. у всех объектов у которых стоит галка export for actionscript, галка export in frame снята вообще. в девелопе все стандартно. в Preloader.as ничего из SWC не добавляется. вот класс package { import flash.display.Bitmap; import flash.display.DisplayObject; import flash.display.MovieClip; import flash.display.Sprite; import flash.events.Event; import flash.events.ProgressEvent; import flash.text.TextField; import flash.text.TextFieldAutoSize; import flash.utils.getDefinitionByName; /** * ... * @author Greenish */ public class Preloader extends MovieClip { private var txt:TextField; public function Preloader() { addEventListener(Event.ENTER_FRAME, checkFrame); // show loader txt = new TextField(); txt.textColor = 0x022467; txt.selectable = false; txt.width = 640; txt.text = "0%"; txt.autoSize = TextFieldAutoSize.CENTER; txt.y = 140; addChild(txt); loaderInfo.addEventListener(ProgressEvent.PROGRESS, progress); } private function progress(e:ProgressEvent):void { // update loader txt.text = (Math.round(e.bytesLoaded / e.bytesTotal)*100).toString() + "%"; } private function checkFrame(e:Event):void { if (currentFrame == totalFrames) { removeEventListener(Event.ENTER_FRAME, checkFrame); startup(); } } private function startup():void { // hide loader removeChild(txt); stop(); loaderInfo.removeEventListener(ProgressEvent.PROGRESS, progress); var mainClass:Class = getDefinitionByName("Main") as Class; addChild(new mainClass() as DisplayObject); } } } спасибо. |
|
|||||
|
Не знаю, было много геморроя по этому поводу у меня. Открыв для себя FlexSDK с метатегом frameFactory гемморой пропал навсегда.
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
аааааа! это меня глююючит по ходу
)) террорист спасибо![]() |
|
|||||
|
ветеран форума
|
Psycho Tiger, а разве frameFactory не тянет за собой еще пол фреймворка?
__________________
trace("Остановите Землю, я сойду!!!"); |
|
|||||
|
стервочка (я мужик)
|
Mur4ik, он вообще ничего не тащит за собой.
|
|
|||||
|
ветеран форума
|
Точно, я очень сильно заблуждался.
Я с год назад тоже пытался пользовать этот метод, но как-то вышло так, что во флешку попали еще куча флексовых классов. Я думал что именно по этому он и не так распространен как через параметр -frame. Проверил только что, работает как часики. Интересно почему этот способ считают недостойным внимания? С первого взгляда он проще чем через -frame. Есть какие-то подвохи в его использовании? Update: Ха! Так вот где собака порылась. Если компилировать 4 SDK все выглядит "чики". Но если скомпилить третьим, то выходит именно то о чем я спрашивал, пустая флешка весит почти 40Kb. Ну и естественно если глянуть ей внутрь, то увидим там не нужное барахло. Компилировал с помощью "4.1.0 build 16076" и "3.5.0 build 12683"
__________________
trace("Остановите Землю, я сойду!!!"); Последний раз редактировалось Mur4ik; 16.06.2010 в 23:06. Причина: Ха! Так вот где собака порылась. |
|
|||||
|
стервочка (я мужик)
|
Mur4ik, это и -frame. просто задаётся в коде.
|
|
|||||
|
ветеран форума
|
Не понял сути написанного. Может я чего делаю не так.
Если я задаю параметр компилятора -farme, ни под 3 ни под 4 SDK лишеного ничего в swf не попадает. Если же использую метатег то при компиляции, используя 3 CDK, в swf попадает несколько десятков (93!) не нужных приложению классов. Напрашивается вывод что это не одно и тоже. Т.е там "за кадром" тоже создается второй фрейм с главным классом, но для чего то еще компилятор тащит в swf кучу мусора.
__________________
trace("Остановите Землю, я сойду!!!"); Последний раз редактировалось Mur4ik; 17.06.2010 в 00:46. |
![]() |
![]() |
Часовой пояс GMT +4, время: 00:21. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|