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

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

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

Регистрация: Nov 2013
Сообщений: 5
По умолчанию Проблема hitTestObject

Подскажет кто-то как убрать объекты. вызванные из библиотеки. со сцены при перемещении основной анимации на фрейм "гейм оувер"? Есть код и в объектах и на фрейме "game over". Думала поставить на фпейм с "г.о." ивент c removeChild но что-то не выходит, скорее всего не так пишу

Код AS3:
addEventListener(Event.REMOVED_FROM_STAGE, removes);
 
function removes(event:Event):void
{
		removeChild((Object(root).StarPOS));
		removeChild((Object(root).StarNEG));
		removeChild((Object(root).Star));
}
также пыталась сделать это через сам объект
Код AS3:
addEventListener(Event.REMOVED_FROM_STAGE, removem);
 
function removem(event:Event):void
{
if (Object(parent).currentFrame== "overgame")
	{
		Object(parent).removeChild(this);
	}
}



Следующая проблема уже имеет решение-
Добрый день, если не сложно, прошу подсказать решение проблемы в коде, пытаюсь сказать, чтоб при столкновении мувиклипов "b" и "hero" очки уменьшались на 100

Код AS3:
b.addEventListener(Event.ENTER_FRAME, hit);
{
	function hit(event:Event):void
	{
		if (this.hitTestObject(Object(root).hero))
			{
				trace ("hit")
				Object(parent.parent).score -=  100;
			var fl_SC2:SoundChannel;
			var s2:Sound = new negat();
			fl_SC2 = s2.play();
			}
		}
	}
Код AS3:
TypeError: Error #2007: Parameter hitTestObject must be non-null.
	at flash.display::DisplayObject/_hitTest()
	at flash.display::DisplayObject/hitTestObject()
	at NEWproject5_fla::pinks_22/hit()[NEWproject5_fla.pinks_22::frame4:5]
вообще в задумке есть несколько идей не знаю как осуществимых, например при кодинге addchild я использовала генератор случайных чисел для времени добавления объектов, но при движении они наслаиваются на друг друга. Есть способ избегать их наслаивания?

решение- код объекта-исключения накладывался на код этой группы объектов. Я решила это образом вынесения объектов-исключений в свою собственную группу с одним исходным кодом.


Последний раз редактировалось mupsus_nika; 26.11.2013 в 03:49.
Старый 24.11.2013, 04:42
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 2  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
1. Что за скобка перед function hit? В коде так же? Что она открывает?
2. Сделайте внутри функции hit трейс перед условием: trace(Object(root).hero); — возможно нет у Мейна никакого херо.
__________________
Reality.getBounds(this);

Старый 24.11.2013, 17:45
mupsus_nika вне форума Посмотреть профиль Отправить личное сообщение для mupsus_nika Найти все сообщения от mupsus_nika
  № 3  
Ответить с цитированием
mupsus_nika

Регистрация: Nov 2013
Сообщений: 5
Wolsh, cпасибо за попытку к разбору, лишнюю скобку удалила, видимо, она вчера от недосыпа туда попала

проверила Вашим советом наличие "херо"- он на месте, при появлении "б" на сцене трейс "хит" активируется.

бросаю еще код родителя "б"-объект Стар, если вдруг будут вопросы, а по существу-


У объекта Стар есть 4 группы объектов (на 4 фреймах по объекту) в каждом из них по 5 объектов выбираемых случайно путем выбора случайного фрейма с этим объектом- 3 одинаковых объекта( они при попадании дают 5 очков)+ 1 объект дающий минус 100 очков и+ 1 объект дающий 20 очков. Так вот "б" соответственно объект исключение- то есть дающий -100 очков. Может подобрать какой-то другой способ для осуществления задуманного?

Код AS1/AS2:
 var nopeus = Math.random() * 5 + 1;
var randomframe:int = Math.random() * 3 + 1;
gotoAndStop(randomframe);
 
 
addEventListener(Event.ENTER_FRAME, liiku);
 
import com.greensock.*;
import com.greensock.easing.*;
TweenLite.to(this, 10, {x:480, y:250, rotation:30, ease:Quint.easeOut});
 
 
function liiku(event:Event):void
{
	//y+=nopeus
 
	if (this.hitTestObject(Object(root).hero))
	{
		if (this.currentFrame == Object(root).hero.currentFrame)
		{
			//popadanie
 
			Object(parent).score +=  5;
			var fl_SC:SoundChannel;
			var s:Sound = new posit();
			fl_SC = s.play();
					}
		else
		{
			//ne to popadanie
			Object(parent).score -=  20;
			var fl_SC2:SoundChannel;
			var s2:Sound = new negat();
			fl_SC2 = s2.play();
		}
		Object(parent).removeChild(this);
 
	}
	else if (y>300)
	{
		Object(parent).removeChild(this);
	}
}
 
addEventListener(Event.REMOVED_FROM_STAGE, remove);
 
function remove(event:Event):void
{
	removeEventListener(Event.ENTER_FRAME, liiku);
}
Добавлено через 31 час 14 минут
Друзья! Проблема решена, если у кого-то возникнет подобное-

код объекта-исключения накладывался на код этой группы объектов. Я решила это образом вынесения объектов-исключений в свою собственную группу с одним исходным кодом.


Последний раз редактировалось mupsus_nika; 24.11.2013 в 18:40.
Создать новую тему Ответ Часовой пояс GMT +4, время: 00:58.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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