Страница 1 из 2
дисплейный объект-контейнер
Добавлено: 10 авг 2011, 15:13
drac0Sha
не умею работать с контейнерами
подскажите пожалуйста
как сделать так
1.при нажатии на кнопку выходит дисплейный объект-контейнер
какие-то действия(таблица к примеру)
2.при нажатии на другую кнопку (вне контейнера) дисплейный объект-контейнер пропадает
а то у меня сейчас
накладывается друг на друга.
Re: дисплейный объект-контейнер
Добавлено: 10 авг 2011, 16:43
bodnar
куски кода в студию
Re: дисплейный объект-контейнер
Добавлено: 11 авг 2011, 09:47
drac0Sha
Код: Выделить всё
private function init(e:Event):void { if (listbool==1) { var temp=scene.numChildren for(var i=0;scene.numChildren!=0;) { scene.removeChildAt(i); //list.removeAll(); } } else { listbool=1; } stage.align = StageAlign.TOP_LEFT; stage.scaleMode = StageScaleMode.NO_SCALE; stage.showDefaultContextMenu = false; stage.align = StageAlign.TOP_LEFT; stage.scaleMode = StageScaleMode.NO_SCALE; stage.showDefaultContextMenu = false; // entry point var stat_loader:URLLoader = new URLLoader(); stat_loader.dataFormat = URLLoaderDataFormat.TEXT; var stat_request:URLRequest = new URLRequest("http://сайт.php"); stat_request.method=URLRequestMethod.POST; var stat_vars:URLVariables = new URLVariables(); stat_vars['auth_key']=auth_key; stat_vars['viewer_id']=viewer_id; stat_request.data=stat_vars; stat_loader.addEventListener(Event.COMPLETE, dataCompleteHandler); stat_loader.load(stat_request); } private function dataCompleteHandler(event:Event):void { var data:XML = new XML( (event.currentTarget as URLLoader).data ); var parties:XMLList = data.party; var blocksContainer:Sprite = new Sprite(); addChild(blocksContainer); blocksContainer.x = blocksContainer.y = 100; var blockHeight:Number = 0; for (var i:uint = 0; i < parties.length(); i++) { var block:InfoBlock = new InfoBlock(parties[i]); block.y = blockHeight; blockHeight += block.height + 1; block.addEventListener(MouseEvent.CLICK, infoBlockClickHandler); blocksContainer.addChild(block); _blocksArray.push(block); } } private function infoBlockClickHandler(event:MouseEvent):void { var blockC:InfoBlock = event.currentTarget as InfoBlock; blockC.hiden = !blockC.hiden; var blockHeight:Number = 0; for (var i:uint = 0; i < _blocksArray.length; i++) { var block:InfoBlock = _blocksArray[i]; if (block !== blockC) { if (!block.hiden) block.hiden = true; } block.y = blockHeight; blockHeight += block.height + 1; } }
в этой части у меня менеджер загрузки, так сказать, контейнера, структура которого описывается в InfoBlock
буду признателен.
listbool не помогает, он убирает все объекты, но не контейнер.
Re: дисплейный объект-контейнер
Добавлено: 12 авг 2011, 07:45
drac0Sha
уже решил проблему ) спасибо за отзывчивость )
Re: дисплейный объект-контейнер
Добавлено: 12 авг 2011, 12:24
drac0Sha
а не ) не получилось )
у кого-нибудь есть какие-нить идеи!? )
Re: дисплейный объект-контейнер
Добавлено: 12 авг 2011, 12:26
drac0Sha
Код: Выделить всё
if (listbool==1) { removeChild(blocksContainer); var temp=scene.numChildren for(var i=0;scene.numChildren!=0;) { scene.removeChildAt(i); //list.removeAll(); } } else { listbool=1; }
вот так пробовал, очень много глюков...что не так!?
Re: дисплейный объект-контейнер
Добавлено: 13 авг 2011, 08:36
bodnar
эм.. removeChild() удалит blocksContainer из списка отображения, зачем там потом еще все со сцены удалять?
Re: дисплейный объект-контейнер
Добавлено: 15 авг 2011, 09:24
drac0Sha
ну дело в том, что у меня приложение.
и при определённой кнопки выводится контейнер.
но помимо контейнера есть другие элементы сцены.
и поэтому я удаляю и со сцены всё. и контейнер удаляю при переходе на другую страничку.
так как там вызывается другой контейнер )
Re: дисплейный объект-контейнер
Добавлено: 15 авг 2011, 09:45
drac0Sha
ну есть приложение. в нём несколько (для точности 3 возьмём) кнопки. 1.)кнопка вызов профиля.2.)кнопка вызов контейнера 1. 3.)кнопка вызов другого контейнера 2.
так вот, при нажатии на кнопку 2.) появляется контейнер 1.
и мне надо сделать так,чтобы при нажатии на кнопку 3) контейнер 1 исчезал, а контейнер 2 появлялся. а при нажатии на кноку 1.) любой из контйнеров исчезал.
Re: дисплейный объект-контейнер
Добавлено: 15 авг 2011, 11:35
bodnar
Кажется понял, я как то делал класс для подобной задачи, примитивный, но улучшать просто не пришлось
Frames.asКод: Выделить всё
package su.css3.framework{ import flash.display.MovieClip; import flash.display.DisplayObject; public class Frames extends MovieClip{ private var arrayOfFrames:Array = new Array(); private var count:Number; public function Frames(count:Number = 1){ this.count = count; for (var i =0; i< count; i++){ arrayOfFrames.push(new MovieClip()); } this.addChild(arrayOfFrames[0]); } public function addToFrame(frame:Number, mc:DisplayObject, x:Number, y:Number){ arrayOfFrames[frame-1].addChild(mc); mc.x = x; mc.y = y; } public function goto(frame:Number){ this.removeChildAt(0); this.addChild(arrayOfFrames[frame-1]); } public function remove(frame:Number,mc:DisplayObject){ arrayOfFrames[frame-1].removeChild(mc); } }}
использование:
Код: Выделить всё
// объявление переменных класса:private var _frames:Frames = new Frames(4); //внутри метода-конструктора:this.addChild(_frames);_frames.addToFrame(1,_mc1,0,0);_frames.addToFrame(2,_mc2,0,0);_frames.addToFrame(3,_mc3,0,0);_frames.addToFrame(4,_mc4,0,0);_frames.goto(1); // показываем пользователю только первый мувиклип_frames.goto(3); // а сейчас будет только третий