дисплейный объект-контейнер

То что касается флеша, но не касается ВКонтакте API. Например проблемы при создании прыгающего мячика.
drac0Sha
Сообщения: 88
Зарегистрирован: 20 июл 2011, 15:41

дисплейный объект-контейнер

Сообщение drac0Sha »

не умею работать с контейнерами
подскажите пожалуйста
как сделать так
1.при нажатии на кнопку выходит дисплейный объект-контейнер
какие-то действия(таблица к примеру)
2.при нажатии на другую кнопку (вне контейнера) дисплейный объект-контейнер пропадает

а то у меня сейчас
накладывается друг на друга.
Аватара пользователя
bodnar
Модератор
Модератор
Сообщения: 1399
Зарегистрирован: 03 апр 2010, 06:41

Re: дисплейный объект-контейнер

Сообщение bodnar »

куски кода в студию
drac0Sha
Сообщения: 88
Зарегистрирован: 20 июл 2011, 15:41

Re: дисплейный объект-контейнер

Сообщение 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 не помогает, он убирает все объекты, но не контейнер.
drac0Sha
Сообщения: 88
Зарегистрирован: 20 июл 2011, 15:41

Re: дисплейный объект-контейнер

Сообщение drac0Sha »

уже решил проблему ) спасибо за отзывчивость )
drac0Sha
Сообщения: 88
Зарегистрирован: 20 июл 2011, 15:41

Re: дисплейный объект-контейнер

Сообщение drac0Sha »

а не ) не получилось )
у кого-нибудь есть какие-нить идеи!? )
drac0Sha
Сообщения: 88
Зарегистрирован: 20 июл 2011, 15:41

Re: дисплейный объект-контейнер

Сообщение 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;       } 
вот так пробовал, очень много глюков...что не так!?
Аватара пользователя
bodnar
Модератор
Модератор
Сообщения: 1399
Зарегистрирован: 03 апр 2010, 06:41

Re: дисплейный объект-контейнер

Сообщение bodnar »

эм.. removeChild() удалит blocksContainer из списка отображения, зачем там потом еще все со сцены удалять?
drac0Sha
Сообщения: 88
Зарегистрирован: 20 июл 2011, 15:41

Re: дисплейный объект-контейнер

Сообщение drac0Sha »

ну дело в том, что у меня приложение.
и при определённой кнопки выводится контейнер.
но помимо контейнера есть другие элементы сцены.
и поэтому я удаляю и со сцены всё. и контейнер удаляю при переходе на другую страничку.
так как там вызывается другой контейнер )
drac0Sha
Сообщения: 88
Зарегистрирован: 20 июл 2011, 15:41

Re: дисплейный объект-контейнер

Сообщение drac0Sha »

ну есть приложение. в нём несколько (для точности 3 возьмём) кнопки. 1.)кнопка вызов профиля.2.)кнопка вызов контейнера 1. 3.)кнопка вызов другого контейнера 2.

так вот, при нажатии на кнопку 2.) появляется контейнер 1.
и мне надо сделать так,чтобы при нажатии на кнопку 3) контейнер 1 исчезал, а контейнер 2 появлялся. а при нажатии на кноку 1.) любой из контйнеров исчезал.
Аватара пользователя
bodnar
Модератор
Модератор
Сообщения: 1399
Зарегистрирован: 03 апр 2010, 06:41

Re: дисплейный объект-контейнер

Сообщение 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); // а сейчас будет только третий 
Ответить