Показать сообщение отдельно
Старый 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.