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

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

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

Регистрация: Jan 2011
Сообщений: 247
Цитата:
Сообщение от goodguy Посмотреть сообщение
Ну так тут-то надо target заменить на spr2
Код AS3:
private function enterframeHandler(e:Event):void {
//code
                                if (spr2.x >= stage.stageWidth - 10) {
					spr2.parent.removeChild(spr2);
				}
/*code*/}
в данной функции не объявлен таргет и в случае замены, компилятор ругается.
На счет обработчиков событий : есть два
Код AS3:
// 1-spr.addEventListener(MouseEvent.CLICK, kill);
// 2-addEventListener(Event.ENTER_FRAME, enterframeHandler);
 
private function kill (e:MouseEvent):void
		{
					var target:Sprite = Sprite(e.target);
					if (target) {
						if (target.parent) 
							target.parent.removeChild(target);
						}
					//target.parent.removeChild(target);
		}
 
private function enterframeHandler(e:Event):void {
//code
                                if (spr2.x >= stage.stageWidth - 10) {
					spr2.parent.removeChild(spr2);
				}
/*code*/}
можно поставить удалять обработчик мыши, ну мне кажется особой роли в моей проблеме, нечего не изменит...

Добавлено через 2 минуты
Цитата:
Сообщение от fish_r Посмотреть сообщение
У вас проблема не в том месте кода, о котором вы спрашиваете. Очевидно, что удаленный спрайт, со сцены, продолжает движение, и по этому срабатывает условие if (spr2.x >= stage.stageWidth - 10). Раз вы уже удалили спрайт - надо его остановить, или отпишитесь от события выхода спрайта за сцену. Но лучше, конечно, первое.
вот именно это я и пытался донести до аудитории что он все равно хочет удалить"нечто", и проходит "нечто" через if

Старый 24.07.2011, 17:02
fish_r вне форума Посмотреть профиль Отправить личное сообщение для fish_r Посетить домашнюю страницу fish_r Найти все сообщения от fish_r
  № 12  
Ответить с цитированием
fish_r
 
Аватар для fish_r

блогер
Регистрация: Jan 2011
Сообщений: 1,162
Записей в блоге: 4
Н-да. Бутфорс в действии.




Последний раз редактировалось fish_r; 24.07.2011 в 17:06.
Старый 24.07.2011, 17:06
GrafMine вне форума Посмотреть профиль Отправить личное сообщение для GrafMine Найти все сообщения от GrafMine
  № 13  
Ответить с цитированием
GrafMine
 
Аватар для GrafMine

Регистрация: Jan 2011
Сообщений: 247
не могу нечего разобрать...

Старый 24.07.2011, 17:07
fish_r вне форума Посмотреть профиль Отправить личное сообщение для fish_r Посетить домашнюю страницу fish_r Найти все сообщения от fish_r
  № 14  
Ответить с цитированием
fish_r
 
Аватар для fish_r

блогер
Регистрация: Jan 2011
Сообщений: 1,162
Записей в блоге: 4
Код AS3:
private function kill (e:MouseEvent):void
		{
					var target:Sprite = Sprite(e.target);
					if (target) {
						if (target.parent) 
							target.parent.removeChild(target);
						}
					//target.parent.removeChild(target);
                                        target.removeEventListener(Event.ENTER_FRAME, enterframeHandler);
		}
Добавлено через 1 минуту
Короче, как мог отформатировал сообщение
Но, опять же. Говорю вам, вы не проблемное место кода показываете. Ваш объект продолжает движение, даже будучи удаленным со сцены. Остановите его.

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

Регистрация: Jan 2011
Сообщений: 247
Ваш способ тоже не работает, ситуация накаляется

Старый 24.07.2011, 17:16
fish_r вне форума Посмотреть профиль Отправить личное сообщение для fish_r Посетить домашнюю страницу fish_r Найти все сообщения от fish_r
  № 16  
Ответить с цитированием
fish_r
 
Аватар для fish_r

блогер
Регистрация: Jan 2011
Сообщений: 1,162
Записей в блоге: 4
тогда так:
Код AS3:
 this.removeEventListener(Event.ENTER_FRAME, enterframeHandler);
Добавлено через 2 минуты
Ситуация накаляться не будет если вы, прежде чем пользоваться кодом, изучите, хотя бы основы ActionScript.
Это вам проще, чем мне развить свои скромные телепатические способности .

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

Регистрация: Jan 2011
Сообщений: 247
Код AS3:
 this.removeEventListener(Event.ENTER_FRAME, enterframeHandler);
останавливает вообще всю игру и в ENTER_FRAMEу меня идет и движение и с массива выводит шарики, поэтому удалять вовсе ENTER_FRAME не вариант :\

Старый 24.07.2011, 17:58
Zik. вне форума Посмотреть профиль Отправить личное сообщение для Zik. Найти все сообщения от Zik.
  № 18  
Ответить с цитированием
Zik.
 
Аватар для Zik.

Регистрация: Nov 2007
Сообщений: 1,723
Ну вот при движении и проверяйте на наличие объекта.

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

Регистрация: Jan 2011
Сообщений: 247
Цитата:
Сообщение от ZIK68 Посмотреть сообщение
Ну вот при движении и проверяйте на наличие объекта.
так и делаю :
Код AS3:
for (var n:int = sprites.length - 1; n >= 0; n--) {
				var spr2:Sprite = sprites[n];
				spr2.x += vx;
				if (spr2.x >= stage.stageWidth - 10) {
					sprites.splice(n, 1);
					spr2.parent.removeChild(spr2);
					i--;
				}
результат тот же...

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

блогер
Регистрация: Feb 2008
Адрес: http://playtika.com
Сообщений: 1,119
Записей в блоге: 5
Отправить сообщение для СлаваRa с помощью ICQ Отправить сообщение для СлаваRa с помощью Skype™
в sprites[n] может быть null? тогда будет ошибка.
__________________
местонахождение

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

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

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


 


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


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