PDA

Просмотр полной версии : Полоса превьюшек, XML, остановить прокрутку.


Varnol
02.02.2007, 14:13
Привет. Помогите пожалуйста с такой проблемой:
Есть исходник галереи: http://www.kirupa.com/developer/mx2004/code/photogallery_2004.zip

Мне нужно адаптировать его таким образом, что б он скроллился не при наводе мышки на полосу с превьюшками, а при наводе мыши на кнопки. Я создал кнопочку, и навесил на нее такой вот код:

on (rollOver){

this.onEnterFrame = function (){
{thumbnail_mc._x -=5;
}
}
}
on (rollOut){
delete this.onEnterFrame
}



Работает как и должна, но, в отличие от оригинального исходника, полоса с превьюшками не прекращает "ехать" даже когда превьюшки "кончаются".
(Она останавливается, когда убираешь мышь с кнопки, но нужно, чтоб останавливалась даже если этого не делать, если справа или слева выехала последняя превьюшка...
Я не могу вкурить как это реализовано в оригинальной флэшке =(
Важно - колличество превьюшек зарание не известно. :o

CorC
02.02.2007, 14:19
все правильно у вас стоит непонятная проверка "<100"
а вы попробуйте поставить что то типа:

if (thumbnail_mc._x>-thumbnail_mc._width){

и уже неважно скока тап превью

Varnol
02.02.2007, 14:26
Да, я счас подредактировал и вообще убрал проверку чтоб не путать лишний раз, но вы успели раньше... Почему-то, то что вы предложили, не работает. Хотя и должно =( Не тормозится.

CorC
02.02.2007, 14:46
исходник не качал, потому предложил навскидку
но по логике правильно, дальше просто не видел чего...

Varnol
02.02.2007, 15:04
Там в исходнике это реализовано collision... А я не фтыкаю пока как.
Т.е. если мувиклип соприкасается с тестовым прозрачным клипом, то происходит движение. Если нет - то ничег оне происходит. =__=
как бы это записать.

CorC
02.02.2007, 15:25
я не нашел в том исходнике не одного скрола

а то что я писал не работает потому как оно останавливается
когда уже становится невидной
попробуйте width+100 хотя б

Varnol
02.02.2007, 15:58
Я тут вот что замыслил:
on (rollOver){
_root.xpos = getProperty(thumbnail_mc, _x);
_root.xpos2 = getProperty(hit_right, _x);
_root.dist = xpos2-xpos

hit_right лежит справа от полосы прокрутки превьюшек, это прозрачный мувик.

Когда dist равно нолю - последний тумбнейл аккурат уползает за границу. То есть я должен написать что-то вроде

Если _root.dist<100, то всем стоять и не двигаться...
Но так как в синтаксисе флэша я полный лох, т оя даже не понимаю как это правильно записать, что бы проверить =(

Мне нужен хэлп...

CorC
02.02.2007, 16:22
вот именно, вам нужен "хелп"
или раздел "вакансии"
или "книга по AS2"

Varnol
02.02.2007, 16:55
Ну я ведь и пишу в раздел для чайников, что бы научиться:victory:

Вот так она (полоса с превьюшками) останавливается, но только если отпустить мышь, т.е. отпускаешь мышь и - если условие соблюдено, прокрутка прекращается и больше не начинается...
Куда-то я по-ходу не туда проверку запихал..

on (rollOver){
_root.xpos = getProperty(thumbnail_mc, _x);
_root.xpos2 = getProperty(hit_right, _x);
_root.dist = xpos2-xpos
trace(dist);
{this.onEnterFrame = function() {{
thumbnail_mc._x +=5;
};
}
}
if (dist<=200){
delete this.onEnterFrame
}}
on (rollOut){
delete this.onEnterFrame
}