![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: 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++;
второй то пишет что -9000+_root.LC = -8998 ну дальше я тоже несколько проверок сделал, все сводится что я не удаляю старый мувик перед созданием нового(((( Одно из двух либо он воспринемает более низкую глубину как более привлекательную для присвоения переменных, либо удаление мувика настолько долгое что он удаляется после того как я ему еже успеваю отослать переменную( Вопрос: Что посоветуете? как удалить Мувик? А забыл добавить, уже долго бьюсь над этим и воможно уже незамечаю очевидных вещей. Буду благодарен за помощь Последний раз редактировалось Roadless; 16.04.2006 в 13:25. |
|
|||||
|
ты бы весь код выложил, непонятно что есть _root.LC и ab
__________________
Тут вам не здесь!!! |
|
|||||
|
this.createEmptyMovieClip("z", 2);
this.createEmptyMovieClip("z", 3); и нажми CTRL+ALT+V в окне Output увидишь что в одном клипе уживаются два мувика с однинаковым именем. Могут и три и 10 ужится. А вот в одном слое только один.
__________________
Тут вам не здесь!!! |
|
|||||
|
removeMovieClip нужен для удаления программно созданного мувиеклипа то есть createEmptyMovieClip и attachMovie, unloadMovie нужен для мувиеклипов которые физически находятся в фреймах, установленные туда ручками
.
__________________
Тут вам не здесь!!! |
|
|||||
|
Регистрация: 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. |
|
|||||
|
Регистрация: Sep 2005
Сообщений: 13
|
Собственно хочу отчитатся, досконально я уже не буду выяснять в чем дело, НО
после переноса всех слоев в положительную плоскость, а именно , -9000 было заменено на 1000, все встало на свои места, те переменные присваивались именно мувику на более высоком уравне. Следовательно, сделал я вывод, флеш при решении какой мувик главней в отрицательной плоскости выбирает тот у кокго номер слоя по модулю больше ( те -35 будет главней чем -10, но лежать мувик - 35 будет ниже чем -10 ). Вот собственно пока и все, если буду разбираться потом подробней может и другую причину найду, а пока пусть будет эта ![]() |
|
|||||
|
Регистрация: 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. |
|
|
« Предыдущая тема | Следующая тема » |
|
|