![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Регистрация: Jul 2009
Сообщений: 77
|
Добрый день.Есть задача: периодически в презентацию нужно загрузить swf или jpg, причём новый swf или jpg нужно загрузить поверх старого с каким-нибудь эффектным переходом. Я делаю так: 1. создаю контейнер vrBack 2. вывожу на экран: addChildAt(vrBack, 0); 3. создаю контейнер vrFace 4. для загрузки требуемого swf или jpg использую специальный класс 5. создаю объект mySwf этого класса 6. при полной загрузке, передаю swf в контейнер vrFace: vrFace= mySwf; 7. контейнер с swf вывожу на экран за vrBack: addChildAt(vrPano, getChildIndex(vrBack)); 8. вызываю функцию эффектного перехода, которая заканчивается очисткой vrBack, т.о. появляется vrFace, содержащий только что загруженный swf: vrBack.removeChildAt(0); 9. когда возникает надобность загрузить новый swf, я передаю старый swf в vrBack: vrBack.addChild(vrPano); 10. переходим в п.4, т.е. создаём объект, передаём его в vrFace, который за vrBack, затем vrBack исчезает показывая vrFace с новым swf. В этом алгоритме меня беспокоит то, что я явно не уничтожаю уходящие swf’ы. Периодически моя прога зависает, не является ли причиной загруженные и где-то хранящиеся swf’ы (каждый не меньше мегабайта)? |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Цитата:
Цитата:
Цитата:
Вобщем непонятно из этого описания отношения mySwf/vrFace/vrPano, поэтому невозможно понять, что и как Вы пытаетесь/не пытаетесь удалить. Разъясните.
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Jul 2009
Сообщений: 77
|
var vrBack:MovieClip=new MovieClip();//создаём мувиклип ему будет передана уходящая панорама при загрузке новой var vrBackTemp:MovieClip=new MovieClip();//создаём пустой мувиклип для загрузки в бэкмуви (нужен для первой загрузки) addChildAt(vrBack, 0); vrBack.addChild(vrBackTemp); var vrPano;//потом приравняем к нему объект с swf или jpg function loadMySwf(id:uint) { var mySwf:MySwfClass=new MySwfClass(id);//создаём объект с загруженным swf, для jpg другой класс MyJpgClass, я его не показываю vrPano=vrPn; //приравниваем к vrPano, т.к. до сих пор небыл известен класс загружаемого объекта расширение MovieClip или BitMap addChildAt(vrPano, getChildIndex(vrBack));//добовляем vrPano в список отображения за vrBack, т.о. сейчас vrBack закрывает vrPano //для определения положения vrBack использую метод getChildIndex, т.к. кроме vrBack и vrPano в у меня есть и другие клипы не показанные здесь function init_vrPano(e:Event):void { if (vrPano.initedPano) {//vrPano.initedPano - метод определяющий момент полной загрузки swf/jpg removeEventListener(Event.ENTER_FRAME, init_vrPano); disapp_vrBack();//вызываем функцию исчезновения vrBack, чтобы показать vrPano } } addEventListener(Event.ENTER_FRAME, init_vrPano);//ждём полную загрузку swf/jpg, когда это происходит вызываем disapp_vrBack() function disapp_vrBack():void { //здесь код описывающий исчезновение vrBack, не привожу vrBack.removeChildAt(0);//vrBack очищен } //здесь код, в определённых условиях вызывающий loadMySwf(); } loadMySwf(0); Последний раз редактировалось filepark; 08.04.2010 в 13:01. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Ойёй... это все в кадре чтоли написано? Функции внутри функций... отсутствие типизаций... мой компиллятор никогда бы такое не скомпиллил..
По Event.ENTER_FRAME определяли загрузку в прошлом веке и в другой модели событий. Вложенные функции не просто зло. Это нельзя. Не знаете, Bitmap или MovieClip - используйте тип DisplayObject. Вам бы почитать чего-нибудь, причем по ас3. И не писать больше в кадрах, это дурно. Добавлено через 27 минут Да, еще... у Вас в коде я так и не нашел ничего про добавление и удаление, но по комментариям у меня сложилось ощущение, что Вы сначала добавляете что-то из переменной методом addChild, а потом присваиваете этой переменной новое значение и считаете, что в контейнере теперь это новое. это СОВСЕМ не то же самое что Во втором случае Вы только изменяете ссылку в переменной, добавленный в контейнер объект при этом конечно же не меняется. Самая загадочная строчка.. Что за vrPn, почему "к vrPano" когда все наоборот, откуда известен теперь и что это меняет... Увидеть бы Ваш класс для загрузки.
__________________
Reality.getBounds(this); |
![]() |
![]() |
Часовой пояс GMT +4, время: 16:03. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|