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

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

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

Регистрация: Feb 2012
Сообщений: 205
Question Исчезают объекты при компиляции

Есть 7 кнопок на сцене. После компиляции 3-я пропадает. Уже весь скрипт перебрала - кнопки только листенерами выступают, больше с ними я ничего и не делаю.

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

Старый 01.11.2013, 16:36
Dukobpa3 вне форума Посмотреть профиль Отправить личное сообщение для Dukobpa3 Найти все сообщения от Dukobpa3
  № 2  
Ответить с цитированием
Dukobpa3
 
Аватар для Dukobpa3

блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
Записей в блоге: 12
Отправить сообщение для Dukobpa3 с помощью Skype™
В коде, который вы не хотите показывать.
__________________
Кто к нам с чем для чего - тот у нас того от того.

Старый 01.11.2013, 16:40
Маруська вне форума Посмотреть профиль Отправить личное сообщение для Маруська Найти все сообщения от Маруська
  № 3  
Ответить с цитированием
Маруська

Регистрация: Feb 2012
Сообщений: 205
Вот код, основная функциональная его часть.
Да, проблема где-то в коде. С таким упрощённым кодом не отображается 4-я кнопка

Код AS3:
stop();
var arr:Array= new Array; 
var p:Number;
 
var bt:Array = new Array(0,bt1,bt2, bt3, bt4, bt5, bt6, bt7);
 
for (p=1; p<=7; p++){ 
		arr[p]=0; 
		if (p==page){
		newpage(p);
		}
	}
 
for(var i:int = 1; i<bt.length;i++)
{ bt[i].addEventListener(MouseEvent.CLICK, itemOnRelese);
  }
 
function itemOnRelese(e:MouseEvent):void
{  
   var currentNumber:int;
   for(var i:int = 1; i<bt.length; i++)
   {
	   if(e.currentTarget.name == ['bt'+i]) 
	   {newpage(i)};
   };
}
 
 
function newpage(i):void
 {		
	 for (var b=1; b<=7; b++)
		{
			if (arr[b]==1){
				arr[b]=0;
				bt[b].gotoAndStop(1)
				}
			}
			removeChildAt(4)
	var Definition:Class  = getDefinitionByName("page_" + String(i)) as Class; // получаем ссылку на класс
    var pg:DisplayObject = new Definition();
	addChildAt(pg,4); 
	pg.y=264.5;
	pg.x=-150;
	bt[i].gotoAndStop(2);
	arr[i]=1;
 }


Последний раз редактировалось Маруська; 01.11.2013 в 16:54.
Старый 01.11.2013, 16:53
Dukobpa3 вне форума Посмотреть профиль Отправить личное сообщение для Dukobpa3 Найти все сообщения от Dukobpa3
  № 4  
Ответить с цитированием
Dukobpa3
 
Аватар для Dukobpa3

блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
Записей в блоге: 12
Отправить сообщение для Dukobpa3 с помощью Skype™
Код AS3:
removeChildAt(4)
Так вы ж ее удаляете. Непонятно только зачем.
__________________
Кто к нам с чем для чего - тот у нас того от того.

Старый 01.11.2013, 17:16
Маруська вне форума Посмотреть профиль Отправить личное сообщение для Маруська Найти все сообщения от Маруська
  № 5  
Ответить с цитированием
Маруська

Регистрация: Feb 2012
Сообщений: 205
да, проблема.

как же мне тогда быть с addChild(pg);

Код AS3:
function newpage(i):void
 {		
	 for (var b=1; b<=7; b++)
		{
			if (arr[b]==1){
				arr[b]=0;
				bt[b].gotoAndStop(1)
				}
			}
			removeChild(pg)//здесь необходимо удальть любой экземпляр зп. Такая запись неправильная. Как сделать верно? 
	var Definition:Class  = getDefinitionByName("page_" + String(i)) as Class; // получаем ссылку на класс
    var pg:DisplayObject = new Definition();
	addChild(pg); //здесь добавляем pg на сцену
	pg.y=264.5;
	pg.x=-150;
	bt[i].gotoAndStop(2);
	arr[i]=1;
 }

Старый 01.11.2013, 17:28
samana вне форума Посмотреть профиль Отправить личное сообщение для samana Найти все сообщения от samana
  № 6  
Ответить с цитированием
samana
 
Аватар для samana

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
А если эти экземпляры pg заносить в массив при создании, а там где вы хотите удалить все pg, то в цикле по этому массиву и удаляйте.

Старый 01.11.2013, 17:53
ZackMercury вне форума Посмотреть профиль Отправить личное сообщение для ZackMercury Найти все сообщения от ZackMercury
  № 7  
Ответить с цитированием
ZackMercury
 
Аватар для ZackMercury

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,922
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
И сразу скажу еще одну проблему - не работает последняя кнопка. Кнопка то есть, а вот клик ничего не дает.

Ох уж эти ваши фокусы с единицей...
Я не понимаю, что мешает вам привыкнуть вести отсчет от нуля?

Добавлено через 13 минут
Вы первым образом создаете кнопки, очевидно, что символ на 4-ом слое(отсчет от нуля) будет кнопка.
Если вы хотели удалить последний элемент, то обратитесь к removeChildAt(numChildren-1);

Старый 01.11.2013, 21:41
Маруська вне форума Посмотреть профиль Отправить личное сообщение для Маруська Найти все сообщения от Маруська
  № 8  
Ответить с цитированием
Маруська

Регистрация: Feb 2012
Сообщений: 205
Цитата:
Сообщение от SuriTheAngel Посмотреть сообщение
removeChildAt(numChildren-1);
спасибо, то, что нужно жэ =))
а 0 не люблю, потому как программить на Pascal училась

Старый 01.11.2013, 21:54
ZackMercury вне форума Посмотреть профиль Отправить личное сообщение для ZackMercury Найти все сообщения от ZackMercury
  № 9  
Ответить с цитированием
ZackMercury
 
Аватар для ZackMercury

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,922
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
Цитата:
а 0 не люблю, потому как программить на Pascal училась
Есть вещи, от которых однажды приходит время избавляться.

Старый 01.11.2013, 22:50
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 10  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
а 0 не люблю, потому как программить на Pascal училась
Ужас. Кому сейчас нужен паскаль?
Вот такой код
Цитата:
Код AS3:
var bt:Array = new Array(0,bt1,bt2, bt3, bt4, bt5, bt6, bt7);
не прокатит ни в одном языке со строгой типизацией. Не нужно так делать. Все проблемы из-за этого и возникают. Нужно привыкнуть, что в нормальных языках массивы начинаются с нуля, а не с единицы. Это вполне удобно.

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

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

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


 


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


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