Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 11.08.2011, 16:47
kaploson вне форума Посмотреть профиль Отправить личное сообщение для kaploson Найти все сообщения от kaploson
  № 31  
Ответить с цитированием
kaploson

Регистрация: Aug 2011
Сообщений: 52
Пробовал, removeChild ... Проблема в том что я не знаю, куда именно его нужно поместить ( Так как, если я пишу в функции, где вызываю, то у меня сразу удаляются блоки, а если в другой, то выдает ошибку, потому что не может найти, что я его вызываю...

=( Вот так вот =(

Старый 11.08.2011, 16:54
2Sun вне форума Посмотреть профиль Отправить личное сообщение для 2Sun Найти все сообщения от 2Sun
  № 32  
Ответить с цитированием
2Sun
[+1 24.05.11]
[+1 09.08.11]
 
Аватар для 2Sun

Регистрация: Mar 2011
Сообщений: 101
Так вы же вроде и хотели удалить блоки? Ничего не понял. Какие блоки удаляются, а какие добавляются?

Старый 11.08.2011, 17:07
kaploson вне форума Посмотреть профиль Отправить личное сообщение для kaploson Найти все сообщения от kaploson
  № 33  
Ответить с цитированием
kaploson

Регистрация: Aug 2011
Сообщений: 52
Прости за непонятное объяснение( Суть вот в чем:

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

а то у меня сейчас
накладывается друг на друга.
вот так вот как-то =) Надеюсь так грамотнее объяснил)

Старый 11.08.2011, 17:16
2Sun вне форума Посмотреть профиль Отправить личное сообщение для 2Sun Найти все сообщения от 2Sun
  № 34  
Ответить с цитированием
2Sun
[+1 24.05.11]
[+1 09.08.11]
 
Аватар для 2Sun

Регистрация: Mar 2011
Сообщений: 101
ну так а что мешает по нажатию на вторю кнопку запустить процесс обратный нажатию на первую?
Чым тэбе породыв - тым и вбью! (с) Тарас Бульба.

Старый 11.08.2011, 17:21
kaploson вне форума Посмотреть профиль Отправить личное сообщение для kaploson Найти все сообщения от kaploson
  № 35  
Ответить с цитированием
kaploson

Регистрация: Aug 2011
Сообщений: 52
Проблема в том что, при нажатии на другую кнопку я уже очищаю сцену removeChildAt, но убирается все кроме именно блоков (контейнер) если я добавляю везде removeChild(BlockContainer), то ничего не работает((
Но и ошибок не выдает(

В чем тут может быть проблема?

Старый 11.08.2011, 17:32
2Sun вне форума Посмотреть профиль Отправить личное сообщение для 2Sun Найти все сообщения от 2Sun
  № 36  
Ответить с цитированием
2Sun
[+1 24.05.11]
[+1 09.08.11]
 
Аватар для 2Sun

Регистрация: Mar 2011
Сообщений: 101
Мощнейшая вспышка на Солнце заблокировала мой телепатический канал к вашему жесткому диску. Код покажите как создаете и как удаляете.

У Вас на блоках слушатели не стоят? Вы их удалять не забываете предварительно?

Старый 11.08.2011, 17:39
kaploson вне форума Посмотреть профиль Отправить личное сообщение для kaploson Найти все сообщения от kaploson
  № 37  
Ответить с цитированием
kaploson

Регистрация: Aug 2011
Сообщений: 52
Код AS3:
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 = 130;
 
   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;
   }
   }
Так мне написал сделать Wolsh, все работает отлично, вот только говорю не могу разобраться с удалением.
Здесь происходи вызов InfoBlock.

Старый 11.08.2011, 17:56
2Sun вне форума Посмотреть профиль Отправить личное сообщение для 2Sun Найти все сообщения от 2Sun
  № 38  
Ответить с цитированием
2Sun
[+1 24.05.11]
[+1 09.08.11]
 
Аватар для 2Sun

Регистрация: Mar 2011
Сообщений: 101
Так здесь то понятно , что работает. А удаляете чем? Можно код кнопки?
Запустите по нажатию кнопки такую процедуру
Код AS3:
while (blocksContainer.numChildren)
{
blocksContainer.removeChildAt(0);
_blocksArray.splice(0,1)
}
removeChild(blocksContainer);
Должно все обнулится и исчезнуть

Старый 11.08.2011, 18:25
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 39  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
В моем коде ссылка на blocksContainer есть только в хендлере загрузки XML. Естественно, что Вы не сможете достучаться до него. Вынесите эту ссылку в поле класса
Код AS3:
private var blocksContainer:Sprite = new Sprite();
(cоответственно уберите строку var blocksContainer:Sprite = new Sprite(); из функции dataCompleteHandler)
И когда надо убрать контейнер с блоками со сцены, в хендлере кнопки удаления пишете просто
Код AS3:
removeChild(blocksContainer);
__________________
Reality.getBounds(this);

Старый 11.08.2011, 18:40
kaploson вне форума Посмотреть профиль Отправить личное сообщение для kaploson Найти все сообщения от kaploson
  № 40  
Ответить с цитированием
kaploson

Регистрация: Aug 2011
Сообщений: 52
Спасибо огромное!!! =) Теперь все наконец-то заработало)) слепой я просто не много видать =))
Все похоже делал, немного ошибся просто))

Добавлено через 17 часов 12 минут
Вот я сделал =) так =)
Код AS1/AS2:
if (listbool==1) 
   {
    removeChild(blocksContainer);
    var temp=scene.numChildren
    for(var i=0;scene.numChildren!=0;)
    {
     scene.removeChildAt(i);
     //list.removeAll();
    }
 
   }
   else
   {
    listbool=1;    
   }
Работает плохо... Убирается сначала при переходе на другую кнопку,
а потом все блокируются...
И я вновь не знаю в чем дело =(

Создать новую тему Ответ Часовой пояс GMT +4, время: 23:52.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 23:52.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.