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

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

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

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

Доброе время суток. Пишу класс:

Код AS1/AS2:
class dec2Bin
{
	private var gl_x = 50
	private var gl_y = 60
	private var iteration = 0
	private var canvas = null
	private var number = 0
 
	function dec2Bin(num_x, num_y)
	{
		_root.canvas.removeMovieClip()
		number = Math.round(Math.random()*10000)/10000
		canvas = _root.createEmptyMovieClip('canvas', _root.getNextHighestDepth());
		canvas._y = 15
		canvas._x = 0
 
		initDisplay(gl_x, gl_y)
	}
 
	private function initDisplay(num_x, num_y)
	{
		drawNumber(num_x, num_y, number + " = 0.", "init_number")
	}
 
	private function drawNumber(num_x, num_y, num, name)
	{
		var mc = canvas.createEmptyMovieClip(name, canvas.getNextHighestDepth());
		mc._x = num_x
		mc._y = num_y
		num_x = 0
		num_y = 0
		for (var i = 0; i < num.length; i++) {
			if (num.substr(i, 1) == " ") {
				num_x += 25
			} else {
				var mv = mc.attachMovie("movbtn0", "num_" + i, mc.getNextHighestDepth(), {_x:num_x, _y:num_y})
				mv.label.text = num.substr(i, 1)
				num_x += 25
			}
		}
	}
 
}
В конструкторе _root.canvas.removeMovieClip() не хочет удалять канвас.
canvas.init_number удаляется только один раз. Все depth положительные.
Профи, будьте добры, подскажите, что я не так делаю? Заранее благодарен.

Старый 12.12.2008, 10:19
Kuruki вне форума Посмотреть профиль Отправить личное сообщение для Kuruki Найти все сообщения от Kuruki
  № 2  
Ответить с цитированием
Kuruki

Регистрация: Jan 2008
Сообщений: 669
removeMovieClip работает для клипов, созданных на сцене каким-либо программным методом, в смысле вы ручками клип клали на сцену?

Старый 12.12.2008, 12:15
vorbiz вне форума Посмотреть профиль Отправить личное сообщение для vorbiz Найти все сообщения от vorbiz
  № 3  
Ответить с цитированием
vorbiz

Регистрация: Nov 2008
Сообщений: 15
Я весь код привёл. Всё делается исключительно программно.

Старый 12.12.2008, 12:44
Kuruki вне форума Посмотреть профиль Отправить личное сообщение для Kuruki Найти все сообщения от Kuruki
  № 4  
Ответить с цитированием
Kuruki

Регистрация: Jan 2008
Сообщений: 669
У меня ваш код работает, строчки не накладываются друг на друга. Или я неправильно вас понял?

Старый 12.12.2008, 12:48
vorbiz вне форума Посмотреть профиль Отправить личное сообщение для vorbiz Найти все сообщения от vorbiz
  № 5  
Ответить с цитированием
vorbiz

Регистрация: Nov 2008
Сообщений: 15
При каждом создании объекта _root.d2b = new dec2Bin старый объект должен удаляться со всеми мувиклипами. Вот я и пытаюсь удалить основной мувиклип canvas, в котором остальные создаются, при каждом создании экземпляра класса.


Последний раз редактировалось vorbiz; 12.12.2008 в 12:53.
Старый 12.12.2008, 12:54
Kuruki вне форума Посмотреть профиль Отправить личное сообщение для Kuruki Найти все сообщения от Kuruki
  № 6  
Ответить с цитированием
Kuruki

Регистрация: Jan 2008
Сообщений: 669
Ну так он удаляется.
Код AS1/AS2:
var bb = new dec2Bin(100, 100);
but.onRelease = function(){
	var ss = new dec2Bin(100, 100);
}
нажимаю на кнопку - каждый раз новая строчка. Если убрать
Код AS1/AS2:
_root.canvas.removeMovieClip()
то строчки друг на друга накладываются.

Старый 12.12.2008, 12:57
vorbiz вне форума Посмотреть профиль Отправить личное сообщение для vorbiz Найти все сообщения от vorbiz
  № 7  
Ответить с цитированием
vorbiz

Регистрация: Nov 2008
Сообщений: 15
Странно всё это. Почему у меня не удаляется тогда? as2 под 8 флеш компилю. студия - cs4.
И кстати, проверьте в 3 раз. Просто я пытался удалять init_number и он после первого раза удалятся, а после второго уже нет.
И вот ещё. Проверьте дебаггером. Оно может накладваться, просто незаметно это. Объект не уничтожается.


Последний раз редактировалось vorbiz; 12.12.2008 в 13:03.
Старый 12.12.2008, 13:58
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 8  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
а trace(_root.canvas) после ремува что говорит?
__________________
Reality.getBounds(this);

Старый 12.12.2008, 20:05
vorbiz вне форума Посмотреть профиль Отправить личное сообщение для vorbiz Найти все сообщения от vorbiz
  № 9  
Ответить с цитированием
vorbiz

Регистрация: Nov 2008
Сообщений: 15
_level0.canvas - до
_level0.canvas - и после

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
а теперь также до и после romove трейс, только trace(_root.canvas.getDepth())
Есть подозрение, что у Вас там несколько канвасов получается и первый не удалился.
__________________
Reality.getBounds(this);

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

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

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


 


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


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