PDA

Просмотр полной версии : взаимное расположение клипов (as2)


Fokker
05.07.2005, 13:49
Джентельмены,добрый день.Требуется ваша помощь начинающему.
Суть проблемы в следующем:
имеем два муви клипа,расположенные на одном backgrounde, в каждый клип вложена кнопка,которая отвечает за перетаскивание клипа мышкой.Необходимо,чтобы перетаскиваемый (выбранный)клип постоянно был видимым при "наложении" одного клипа на другой.Я для кнопки написал следующий скрипт :

on (press) {
startDrag(_root.mс1);
_root.mс1.swapDepths("_root.mс2");
}
on (release) {
stopDrag();
}

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

Как нужно изменит скрипт?

(аналог- перекрывающиеся менюшки на сайте www.orangedesign.com )

Штрек
05.07.2005, 22:12
mc1.onPress = function() {
this.startDrag();
if (this.getDepth()<this._parent.mc2.getDepth()) {
this.swapDepths(this._parent.mc2);
}
};
mc2.onPress = function() {
this.startDrag();
if (this.getDepth()<this._parent.mc1.getDepth()) {
this.swapDepths(this._parent.mc1);
}
};
mc1.onRelease =mc2.onRelease =function () {
this.stopDrag();
};

Король
05.07.2005, 22:16
mc1.onPress = function(){
this.startDrag()
this.swapDepths(1000)
_root.mc2.swapDepths(1)
}
mc2.onPress = function(){
this.startDrag()
this.swapDepths(1000)
_root.mc1.swapDepths(1)
}

Штрек
05.07.2005, 22:16
ЗЫ. Причем здесь as2???????

Король
05.07.2005, 22:17
для понта!

silin
05.07.2005, 22:18
maxd=Math.max(mc1.getDepth(),mc2.getDepth())
ну и меняешь для обоих на эту глубину: swapDepths(maxd);

Король
05.07.2005, 22:21
предлагаю устроить конкурс - все пишем здесь свои варианты смены глубин у двух мувиков. кто оставит последнее сообщение - тот выиграл

TERRORist
05.07.2005, 22:43
onLoad=function(){fscommand("quit");}
Я выиграл!)

Король
05.07.2005, 22:45
оно вышло из чата

KidsKilla
05.07.2005, 22:56
MindControl.broadcastMessage("Я выиграл. вы проиграли.")

Fokker
06.07.2005, 11:50
джентельмены, искренне благодарен.

toFlash
06.07.2005, 12:46
Вот оно! :eek:

var NameActiveClip;
mc1.onPress = function() {
eval(NameActiveClip).Stop();
this.Start();
};
mc1.onRelease = function() {
this.stopDrag();
};
mc2.onPress = function() {
eval(NameActiveClip).Stop();
this.Start();
};
mc2.onRelease = function() {
this.stopDrag();
};
mc3.onPress = function() {
eval(NameActiveClip).Stop();
this.Start();
};
mc3.onRelease = function() {
this.stopDrag();
};

MovieClip.prototype.Start = function() {
NameActiveClip=this
this.tmpDepths=this.getDepth();
this.swapDepths(50000);
startDrag(this);
}
MovieClip.prototype.Stop = function() {
this.swapDepths(this.tmpDepths);
}

Король
06.07.2005, 13:00
за использование прототипов - 2 бонус-балла. за использование функций - 1 бонус-балл. за использование eval - 5 штрафных баллов. итого -2, увы...

toFlash
06.07.2005, 13:09
Ну, подумаешь :
_root[NameActiveClip].Stop();

Король
06.07.2005, 13:46
вторая попытка - 7 штрафных баллов, итого: -4. увы.

Fokker
06.07.2005, 14:08
Джентельмены...поскольку книга Мука ActionScript2 только еще в процессе доставки по почте, флеш приходится учить урывками из инета,методом тыка,детским мурзилкам и в том числе благодаря этому форуму...я переписал все ваши советы...пока перевариваю их...некоторые из них в моей схеме не сработали (вероятно руки у меня не то,что кривые,а вообще еще не выросли)...
..я переписал сценарий для кнопок следующим образом :

on (press) {
startDrag(_root.mс1);
if (this.getDepth()<this._parent.mс2.getDepth()) {
this.swapDepths(this._parent.mс2);
}
if (this.getDepth()<this._parent.mс3.getDepth()) {
this.swapDepths(this._parent.mс3);
}
}
on (release) {
stopDrag();
}


ну и аналогичный код для всех кнопок на трех клипах ( их в действительности три,а не два)...
Все заработало как надо.
В ваших рекомендациях используются функции,...как с ними жить я пока не разобрался :)))...ну да все впереди я надеюсь...с божьей и вашей помощью.

Еще раз спасибо,...где как не здесь наберешься уму-разуму

С уважением ко всем,Леонид.

P.S. непременно попробую отработать все указанные вами варианты.

Штрек
06.07.2005, 22:56
Джентельмены...поскольку книга Мука ActionScript2 только еще в процессе доставки по почте, .
Что, уже есть перевод Мука AS2????
Или изучаем в оригинале?

KidsKilla
06.07.2005, 23:07
уж не знаю, пригрезилось ли, но когда я брал с полгода назад мука про ас1 рядом была 2я его. и вродь ас2 и вродь русиш. 8\

всёравно переводить ас2 нет смысла. вот-вот ас3 будет, его и переводить можно =)

Штрек
06.07.2005, 23:52
Уже переведено и скоро выйдет.
Читать Нокса -
http://flash-mx.ru/forum/topic_show.pl?pid=1505#pid1505

Nirth
06.07.2005, 23:56
вот-вот ас3 будет, его и переводить можно =)
не верь, в восьмом флэше точно не будет, и в девятом сомнительно