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

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

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

Регистрация: Aug 2009
Сообщений: 22
По умолчанию Не могу обратиться к функции в сцене из динамического мувика

В общем задача такая, удалить мувик, по достижению последнего кадра, мувик создан как Класс "Export To Action Script", галочка "Export in Frame 1" не стоит (с ней так же)

в первом кадре на сцене:

Код AS3:
addEventListener(Event.ENTER_FRAME, test2); 
 
var lev = 0;
var w = 550
var h = 400;
 
function test2(e:Event) 
	{	
	lev++;
	var d = new wave();
	d.x = 0 + Math.random() * w;//ложим в случайную точку
	d.y = 0 + Math.random() * h;//на поверхности воды	
	d.scaleX = d.scaleY = 0.50 + Math.random();//больше реализма
	d.gotoAndPlay(1);
	addChild(d);
	}
 
function removeWave(obj:MovieClip):void
	{
	removeChild(obj);
	}
начинает работать скрипт, волны пошли, но, они не удаляются, и соответственно засерается память.

в последнем кадре

пытаюсь вызвать this.parent.parent.removeWave(this)
ну или типа того, вобщем функцию не видит.

в чем моя ошибка? заранее спасибо.

ЗЫ: в примере тут: http://xitri.com/2008/05/05/more-vod...-ne-tolko.html

сделано через:
Код AS1/AS2:
this.removeMovieClip();
но такая шняга не пашет в AS3

Помогите разобраться. Заранее спасибо!

ЗЫ2: может есть вариант правильнее

Добавлено через 4 минуты
Код AS3:
delete(this)
вроде тоже не канает, файл в памяти растет, кушает

Старый 10.08.2009, 15:10
marat_sa вне форума Посмотреть профиль Отправить личное сообщение для marat_sa Посетить домашнюю страницу marat_sa Найти все сообщения от marat_sa
  № 2  
Ответить с цитированием
marat_sa
 
Аватар для marat_sa

Регистрация: Nov 2006
Сообщений: 487
Отправить сообщение для marat_sa с помощью ICQ Отправить сообщение для marat_sa с помощью Skype™
Ну пиши в последнем кадре волны:
Код AS3:
if (this.parent)
    this.parent.removeChild(this);
Или для производительности - задай определенное максимальное число волн. А при окончании анимации - не удаляй волну, а изменяйте ее параметры заново (x, y, scale) и анимацию тоже сначала воспроизводи.
__________________
Стой! Опасная зона! Работа мозга!


Последний раз редактировалось marat_sa; 10.08.2009 в 15:13.
Старый 10.08.2009, 15:18
netic вне форума Посмотреть профиль Отправить личное сообщение для netic Найти все сообщения от netic
  № 3  
Ответить с цитированием
netic

Регистрация: Aug 2009
Сообщений: 22
Цитата:
Сообщение от marat_sa Посмотреть сообщение
Ну пиши в последнем кадре волны:
Код AS3:
if (this.parent)
    this.parent.removeChild(this);
Или для производительности - задай определенное максимальное число волн. А при окончании анимации - не удаляй волну, а изменяйте ее параметры заново (x, y, scale) и анимацию тоже сначала воспроизводи.
Спасибо, работает. блин все как в джаве скрипт ))) почему я все еще напрягаюсь что экшенскрипт 3 сложнее..

получилось, память кушается чуток ваще, волны убиваются.

я пока ждал ответа, понял что они к MainTimeLine принадлежат, и что парентом выход на него) а далее ступл


Старый 10.08.2009, 15:27
marat_sa вне форума Посмотреть профиль Отправить личное сообщение для marat_sa Посетить домашнюю страницу marat_sa Найти все сообщения от marat_sa
  № 4  
Ответить с цитированием
marat_sa
 
Аватар для marat_sa

Регистрация: Nov 2006
Сообщений: 487
Отправить сообщение для marat_sa с помощью ICQ Отправить сообщение для marat_sa с помощью Skype™
parent вообще-то лучше не юзать, ну или только осторожно.
про delete(this) - переменная волны у тебя создается в локальной функции, следовательно, после отработки ссыка на объект уничтожается, так что удалять this - это... даже не знаю как сказать)))) неправильно...

Вообще, создаваемые объекты записывай в массив, чтоб ссылки контролировать к ним и используй их по нескольку раз, как я уже говорил выше.
__________________
Стой! Опасная зона! Работа мозга!

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

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

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


 


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


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