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

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

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

Регистрация: Sep 2005
Сообщений: 13
По умолчанию Удаление мувика или проблема с переменными

Проблема:
Делается меню, при клике на кнопу, атачится подменю на новый слой
в этот мувик(подменю) передается его номер, ну а дальше он сам знает что делать. НО
При первом клике все ок, а вот во второй и последующие разы всплывает проблема, почемуто скрипт передает номер в старый экземпляр мувика (которого по идее вообще недолжно уже существовать, и он находится на более низком слое если уж о нем говорить) а новый мувик неможет дальше работать из за того что он не получил свою переменную(номер свой).
Дополнительная информация:
слои идут начиная с -9000 и дальше по нарастающей -8999 -8998 итд
Поповоду удаления,
сначала я делаю
причем привел removeMovieClip() и unloadMovie(); чтоб наверняка!
Код:
if (_parent["lknp"+ab]<>undefined){
	_parent["lknp"+ab].removeMovieClip()
	_parent["lknp"+ab].unloadMovie();
trace (_parent["lknp"+ab].getDepth())
}
и всеравно мне трайс выдает что его глубина такая-то

но дальше интересней:
аттачу мувик
Код:
_parent.attachMovie("lknp0k", "lknp"+ab, -9000+_root.LC, {_x:50});
	trace(_parent["lknp"+ab].getDepth()+" Depth1")
	trace(-9000+_root.LC)
	_root.LC++;
а первый трейс выдает (допустим это второй клик) что глубина -8999, НО
второй то пишет что -9000+_root.LC = -8998
ну дальше я тоже несколько проверок сделал,
все сводится что я не удаляю старый мувик перед созданием нового((((

Одно из двух либо он воспринемает более низкую глубину как более привлекательную для присвоения переменных, либо удаление мувика настолько долгое что он удаляется после того как я ему еже успеваю отослать переменную(
Вопрос: Что посоветуете?
как удалить Мувик?

А забыл добавить, уже долго бьюсь над этим и воможно уже незамечаю очевидных вещей.
Буду благодарен за помощь


Последний раз редактировалось Roadless; 16.04.2006 в 13:25.
Старый 16.04.2006, 13:35
Friday13 вне форума Посмотреть профиль Отправить личное сообщение для Friday13 Посетить домашнюю страницу Friday13 Найти все сообщения от Friday13
  № 2  
Ответить с цитированием
Friday13
 
Аватар для Friday13

Регистрация: Nov 2001
Адрес: Moscow village
Сообщений: 193
Отправить сообщение для Friday13 с помощью ICQ
ты бы весь код выложил, непонятно что есть _root.LC и ab
__________________
Тут вам не здесь!!!

Старый 16.04.2006, 13:38
Friday13 вне форума Посмотреть профиль Отправить личное сообщение для Friday13 Посетить домашнюю страницу Friday13 Найти все сообщения от Friday13
  № 3  
Ответить с цитированием
Friday13
 
Аватар для Friday13

Регистрация: Nov 2001
Адрес: Moscow village
Сообщений: 193
Отправить сообщение для Friday13 с помощью ICQ
this.createEmptyMovieClip("z", 2);
this.createEmptyMovieClip("z", 3);
и нажми CTRL+ALT+V в окне Output увидишь что в одном клипе уживаются два мувика с однинаковым именем. Могут и три и 10 ужится. А вот в одном слое только один.
__________________
Тут вам не здесь!!!

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

Регистрация: Nov 2001
Адрес: Moscow village
Сообщений: 193
Отправить сообщение для Friday13 с помощью ICQ
removeMovieClip нужен для удаления программно созданного мувиеклипа то есть createEmptyMovieClip и attachMovie, unloadMovie нужен для мувиеклипов которые физически находятся в фреймах, установленные туда ручками.
__________________
Тут вам не здесь!!!

Старый 16.04.2006, 14:28
Roadless вне форума Посмотреть профиль Отправить личное сообщение для Roadless Найти все сообщения от Roadless
  № 5  
Ответить с цитированием
Roadless

Регистрация: Sep 2005
Сообщений: 13
_root.LC это обычная нумбер переменная созданная для того чтоб слои накручивать,а "ab" это номер нажатой кнопки и и он используется для присвоения имени подменю и последующей передачи внутрь клипа в качестве переменной.

Вот собственно и код


имя кнопки сначало три символа имени потом номер кнопки вроде sub121

Код:
var ab = this._name.substring(3, this._name.length);
//номер полностью
var a = this._name.substring((this._name.length-1), this._name.length);
//последняя цифра

onPress = function () {

//Здесь я хотел сказать , если клип с таким именем есть то его ремув полюбому, но что то не выходит
	if (_parent["lknp"+ab]<>undefined){
	trace("remove")
	_parent["lknp"+ab].unloadMovie();
	_parent["lknp"+ab].removeMovieClip()
trace (_parent["lknp"+ab].getDepth())
}
	
//Здесь замута с подгрузкой текста если он есть
	var TempAb = _parent.tempKnp._name.substring((_parent.tempKnp._name.length-2), _parent.tempKnp._name.length);
	if (_root["txt"+ab]<>undefined) {
		_root.attachMovie("Ontext", "Ontext", -5000);
		_root.txtfild.text = _root["txt"+ab];
	}
	//Ну здесь собственно приклейка мувика с тем же именем но на новый слой 
        _parent.attachMovie("lknp0k", "lknp"+ab, -7000+_root.LC, {_x:50});
	trace(_parent["lknp"+ab].getDepth()+" Depth1")
	trace(-7000+_root.LC)
	_root.LC++;

//дальше идет гемор с масками , чтоб меню не лазели где не надо и собственно удаление мувиков после того как они скроятся за горизонт (правда реализованно все не по уму а чтоб было)
if (ab*1>9) {
		if(_parent["lknp"+ab]){
		_parent.createEmptyMovieClip("MaskLine", -6888);}
		if(_parent["lknp"+TempAb]){
		_parent.createEmptyMovieClip("MaskLine2", -6888);}
		sch = 0;
		_parent.MaskLine.onEnterFrame = function() {

			_parent["lknp"+ab].setMask(_parent.MaskLine);
			with (_parent.MaskLine) {
				lineStyle(1, 0, 100);
				beginFill(0);
				moveTo(0, _parent["knp"+ab]._y);
				lineTo(200, _parent["knp"+ab]._y);
				numbr = ab*1+1;
				lineTo(200, _parent["knp"+numbr]._y+26);
				lineTo(0, _parent["knp"+numbr]._y+26);
				endFill();
			}
				
			if (sch>=20) {
				delete _parent.MaskLine.onEnterFrame;
	
			}
			sch++;
		};
	}
	/*------------------------------------------------------------------
	Маска для уезда предыдущего подменю
	
	
	
	-----------------------------------------------------------*/ 
	_parent.MaskLine2.onEnterFrame = function() {
			_parent["lknp"+TempAb].setMask(_parent.MaskLine2);
				with (_parent.MaskLine2) {
					lineStyle(1, 0, 100);
				beginFill(0);
				moveTo(0, _parent["knp"+TempAb]._y+28);
				lineTo(200, _parent["knp"+TempAb]._y+28);
				numbrOff = TempAb*1+1;
				lineTo(200, _parent["knp"+numbrOff]._y+20);
				lineTo(0, _parent["knp"+numbrOff]._y+20);
				endFill();
			}
			if (sch>=20) {
				_parent["lknp"+TempAb].removeMovieClip();
				_parent.MaskLine2.removeMovieClip();
				delete _parent.MaskLine2.onEnterFrame;
			}
			sch++;
			
		};
		
	if (ab>TempAb) {
		_parent["lknp"+TempAb].tween("_y", a*29-29*_root["sub"+TempAb], 1);
	} else {
		_parent["lknp"+TempAb].tween("_y", a*29+29*_root["sub"+ab]-29*_root["sub"+TempAb]+58, 1);
	}

	//передаем номер нажатой кнопки в клип с подменю
	_parent["lknp"+ab].nkn = ab;
	this.enabled = false;
	
//Записываем для потомков что кнопа была недавно нажата
	if (_parent.tempKnp<>this) {
		//если пребидущий клик не на этой кнопе
		//trace ("onPressQQQQQ");
		_parent.tempKnp.gotoAndStop("out");
		//то потушить старую
		_parent.tempKnp.enabled = true;
		//зделать её активной
		_parent.tempKnp = this;
		//и запомнить кто теперь горит
		trace(_parent.tempKnp+"  tempKnp");
	}
};
onRollOver = function () {
	
	gotoAndStop("in");
};
onRollOut = function () {
	
	gotoAndStop("out");

};

Нет, насчет того что клипы с одинаковыми именами могут существовать на разных слоях я вкурсе, но вот как распределяется приоритет? я думал что кто на более высоком уровне тот и прав(к нему по имени и идет обращение), но есть еще вариант что знак "-" не воспринимается и тогда -7 больше чем -5. Но не в этом суть. Почему у меня предидущий клип не ремувится?


Последний раз редактировалось Roadless; 16.04.2006 в 14:44.
Старый 16.04.2006, 19:03
Roadless вне форума Посмотреть профиль Отправить личное сообщение для Roadless Найти все сообщения от Roadless
  № 6  
Ответить с цитированием
Roadless

Регистрация: Sep 2005
Сообщений: 13
Собственно хочу отчитатся, досконально я уже не буду выяснять в чем дело, НО
после переноса всех слоев в положительную плоскость, а именно , -9000 было заменено на 1000, все встало на свои места, те переменные присваивались именно мувику на более высоком уравне.
Следовательно, сделал я вывод, флеш при решении какой мувик главней в отрицательной плоскости выбирает тот у кокго номер слоя по модулю больше ( те -35 будет главней чем -10, но лежать мувик - 35 будет ниже чем -10 ).
Вот собственно пока и все, если буду разбираться потом подробней может и другую причину найду, а пока пусть будет эта

Старый 18.04.2006, 03:23
argentines вне форума Посмотреть профиль Отправить личное сообщение для argentines Найти все сообщения от argentines
  № 7  
Ответить с цитированием
argentines

Регистрация: Apr 2006
Сообщений: 1
Privetik s Argentini menya zavut Sergio, u menya est odna provlemka pomoshite? nerabotaet loadVariables nezagrushaet muvik ta ukazivayu tak
loadVariables("musik.swf","target"); y on nepodgrushaetsa

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

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

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


 


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


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