![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Jun 2012
Сообщений: 16
|
создается и заполняется контейнер так:
function textLoaded(e:Event):void { xml = XML(urlLoader.data); xmlList = xml.image; initGallery(); } function initGallery():void { var numOfItems:Number = xmlList.length(); var counter:Number = 0; for (var i:int = 0; i<numOfItems; i++) { var container:MovieClip = new MovieClip(); var item:Loader = new Loader(); item.x = (55 + 5) * i; container.big = (xmlList[counter].imgURL); container.mouseChildren = false; item.load(new URLRequest(xmlList[counter].imgSmallURL)); container.addChild(item); container.addEventListener(MouseEvent.CLICK, showBig); addChild(container); counter++; } } управляется двумя слушателями: btn_show.addEventListener(MouseEvent.CLICK, showGallery); btn_hide.addEventListener(MouseEvent.CLICK, hideGallery); function showGallery(e:MouseEvent):void { urlLoader.addEventListener(Event.COMPLETE,textLoaded); urlLoader.load(new URLRequest("xml/bassein.xml")); } при компиляции получаю ошибку: 1120: Обращение несуществующего свойства container. |
|
|||||
|
Регистрация: Nov 2012
Сообщений: 31
|
|
|
|||||
|
Регистрация: Jun 2012
Сообщений: 16
|
ошибка изменилась на: 1120: Обращение несуществующего свойства item.
|
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Ничего не понял. Создается сотня мувиклипов (зачем мувиклипов?) контейнеров, ссылки на которые нигде не сохраняются, а потом, при нажатии одной кнопки Вы требуете удалить какой-то контейнер. Какой?
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Jun 2012
Сообщений: 16
|
создаются кнопки из xml (item) и помещаются внутрь контейнера (container), и он добавляется на сцену, кнопки показывают нужную картинку из галереи, я предположил что для того чтобы закрыть галерею полностью нужно просто удалить контейнер со сцены, в котором создаются кнопки (item)
|
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Вы не ответили на вопрос.
Есть некая одна кнопка btn_hide, при нажатии на которую выполняется хендлер Что именно Вы имели в виду здесь под "container"? Какой из множества? Другими словами, знает ли кнопка, или ее обработчик, какой именно контейнер имеется в виду? (речь сейчас не о коде, не о значении переменной container, а просто о логике). Эта кнопка — одна на всю галерею из множества контейнеров? Или она сама находится в контейнере? Вы скрыли наиболее важную информацию.
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Jun 2012
Сообщений: 16
|
Цитата:
код целиком: import flash.net.URLLoader; import flash.net.URLRequest; import flash.events.Event; import flash.display.MovieClip; import flash.ui.Mouse; btn_show.addEventListener(MouseEvent.CLICK, showGallery); btn_show2.addEventListener(MouseEvent.CLICK, showGallery2); btn_hide.addEventListener(MouseEvent.CLICK, hideGallery); var urlLoader:URLLoader = new URLLoader(); var xml:XML; var xmlList:XMLList; var loaderBig:Loader = new Loader ; var imgShowBig:Boolean = false; //скрывает галлерею function hideGallery(e:MouseEvent):void { removeChild(container); } //показывает 1-ю галлерею function showGallery(e:MouseEvent):void { urlLoader.addEventListener(Event.COMPLETE,textLoaded); urlLoader.load(new URLRequest("xml/bassein.xml")); if (imgShowBig == true) { removeChild(loaderBig); imgShowBig = false; } } //показывает 2-ю галлерею; function showGallery2(e:MouseEvent):void { urlLoader.addEventListener(Event.COMPLETE,textLoaded); urlLoader.load(new URLRequest("xml/sanuzel.xml")); if (imgShowBig == true) { removeChild(loaderBig); imgShowBig = false; } } loaderBig.addEventListener(MouseEvent.CLICK, hideBigLoader); function textLoaded(e:Event):void { xml = XML(urlLoader.data); xmlList = xml.image; initGallery(); } function initGallery():void { var numOfItems:Number = xmlList.length(); var counter:Number = 0; for (var i:int = 0; i<numOfItems; i++) { var container:MovieClip = new MovieClip(); var item:Loader = new Loader(); item.x = (55 + 5) * i; container.big = (xmlList[counter].imgURL); container.mouseChildren = false; item.load(new URLRequest(xmlList[counter].imgSmallURL)); container.addChild(item); container.addEventListener(MouseEvent.CLICK, showBig); addChild(container); counter++; } } function showBig(e:MouseEvent):void { loaderBig.load(new URLRequest(e.target.big)); loaderBig.y = 55; loaderBig.x = 27; addChild(loaderBig); imgShowBig = true; } function hideBigLoader(e:MouseEvent):void { if (imgShowBig == true) { removeChild(loaderBig); imgShowBig = false; } } |
|
|||||
|
Регистрация: Oct 2012
Сообщений: 10
|
Попробуйте при создании контейнеров записать их в один вектор или массив
а потом по очереди их уничтожить:
Как-то так. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Цитата:
Сколько раз я спросил об этом? И, как модератор, хочу попросить — не надо каждый раз цитировать целиком предыдущее сообщение. Оно здесь и никуда не делось. Цитируйте какой-то фрагмент, если это действительно требуется, или если между сообщением, на которое Вы отвечаете и Вашим ответом уже настрогали несколько сообщений. Добавлено через 7 минут Prokter, а зачем создавать новый экземпляр мувиклипа там, где задача была и от старого то избавиться? Если надо удалить ВСЕ контейнеры, то я бы просто совал все эти лоадеры в один общий контейнер и при необходимости даже его не удалял, а просто очищал с помощью removeChildren(). Поскольку никаких ссылок на лоадеры нет, мусорщик их соберет, как проснется.
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Jun 2012
Сообщений: 16
|
спасибо за подсказку, попробую, насчет замечания - учту.
суть в следующем: создается галерея с миниатюрами, по клику на миниатюру открывается полная картинка. Чтобы перейти от галереи к другому разделу сайта нужно эту галерею как-то скрыть или удалить. Кнопка - пункт меню сайта. а подробнее можете пояснить как сунуть все лоадеры в общий контейнер и потом очистить его? |
![]() |
![]() |
Часовой пояс GMT +4, время: 00:23. |
|
|
« Предыдущая тема | Следующая тема » |
|
|