![]() |
|
||||||||||
|
|||||
|
Регистрация: May 2009
Сообщений: 134
|
Всем здравствуйте.
я тоже конечно далеко не ас, но надо подгрузить swf файл, написанный на as3 но с применением старых приемов. т.е. без классов, есть код таймлайне и в мувиках. проблема такая: когда запускаю ту анимашку - она идет, но если я ее закрываю раньше времени - выдает ошибку: TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null". at 1s_3_fla::contour3_113/frame37() пыталась применить Local Connection (по этому методу http://flasher.ru/forum/showpost.php...&postcount=105), но выдает ошибку: 1119: Access of possibly undefined property stopAnimation through a reference with static type flash.net:LocalConnection. как же быть? и еще вопрос - если есть утечка памяти - это вина в моей программе или возможно что-то не так в подгружаемом мувике? (когда его закрываю, даже когда без ошибок - т.е. после завершения показа - цп и память на место не становятся) Последний раз редактировалось kaetano; 15.05.2012 в 17:20. |
|
|||||
|
Исходник?
Из описания мало что понятно.
__________________
http://artem-lobachenkov.ru/ |
|
|||||
|
Регистрация: May 2009
Сообщений: 134
|
попробую привести код. подгружаемую swf подправила немного сама - с ней не надо уже разбираться.
и в общем задача теперь такая - надо найти утечку ресурсов. перед показом анимашек - загрузка цп - 10-15%, во время анимации вырастает до 65 (там не простая картинка), а после удаления ее - падает до 40. Хочется падения до исходного. прошу посмотреть критически на код и помочь (особенно настораживает момент с удалением объекта с использованием ссылки target - можно ли таким образом удалять?). заранее всем спасибо!!!!! //функция в основном классе проекта. тут создается экземпляр класса PagePicture (который содержит) //подгружаемый swf ...... //это вспомогательная переменная private var target:DisplayObject; ...... private function onPicture():void { _arrPic = _arrStep[_curStep].arrAction[_curAction].arrAct[_curAct].picture.arrPics; for (var i:int = 0; i < _arrPic.length; i++) { var item:DPic = _arrPic[i]; //создаем экземпляр var pPic:PagePicture = new PagePicture(_picW, _picH, item.descrPic.Name, item.descrPic.Text, item.picTime * _koefSpeed, _picX, _picY, item.picScale); pPic.name = "pPic"; sprMain.addChild(pPic); //ждем исчезновения pPic.addEventListener(PageAppearOb.END_DISAPPEAR, onEndDisapPic); } } //конец картинке private function onEndDisapPic(event:Event):void { event.target.removeEventListener(PageAppearOb.END_DISAPPEAR, onEndDisapPic); if (event.target is PagePicture) { (event.target as PagePicture).deactivate(); } deleteOb("pPic"); } //тут же в основном классе ф-я для уничтожения ненужных объектов private function deleteOb(nameOb:String = "NoName"):void { target = null; target = sprMain.getChildByName(nameOb); if (target) { sprMain.removeChild(target); target = null; } } ************************************************************************************** //и сам класс PagePicture package { public class PagePicture extends PageAppearOb { public static const CLOSE_PIC: String = "CLOSE_PIC"; private var rectMask:Shape; //маска для рамки private var loader:Loader; private var loaderContent:DisplayObject; override public function PagePicture(picW :int = 100, picH :int = 200, picName :String = "", picTitle:String = "", picTime :int = 0, picX :int = -1, picY :int = -1, picScale:Number = 1, blockButtonTime:int = 0) { //тут было сохранение параметров...... super(); //загружаем картинку loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.INIT, initListener); var urlRequest:URLRequest = new URLRequest(picName) loader.load(urlRequest); } private function initListener(event:Event):void { event.target.removeEventListener(Event.INIT, initListener); loaderContent = loader.content; addEventListener(PageAppearOb.END_APPEAR, onEndAppear); } //показываем картинку private function onEndAppear(event:Event):void { removeEventListener(PageAppearOb.END_APPEAR, onEndAppear); if (loaderContent) spr.addChild(loaderContent); loaderContent.mask = rect; } public function deactivate():void { removeEventListener(PageAppearOb.END_APPEAR, onEndAppear); removeEventListener(PageAppearOb.END_DISAPPEAR, onEndDisappear); removeEventListener(MouseEvent.CLICK, mouseClickListener); if (loader) { loader.unload(); loader = null; loaderContent = null; } } НАРОД!!!! Очень прошу ответить! Нормально ли это что после выгрузки внешних анимашек процессор загружен на 40% и не думает выгружаться? Очень жду помощи!!!!!! Извиняюсь за поднятие темы Последний раз редактировалось kaetano; 17.05.2012 в 01:00. |
![]() |
![]() |
Часовой пояс GMT +4, время: 23:25. |
|
|
« Предыдущая тема | Следующая тема » |
|
|