PDA

Просмотр полной версии : Html линки в бегущей строке


sher83
14.08.2005, 14:07
Я столкнулся с такой проблемой, делая бегущую строку - не работают HTML линки.

Объясню, как и что я делаю. Есть dynamic text - туда через переменную передается некий текст с несколькими HTML линками (типа "<A HREF=\"http://www.google.com\">www.google.com</A>"). Строка бежит, а при наведении мыши останавливается. Чтобы останавливать строку, используется команда on(rollOver) { this.stop(); } прописанная моему мувику.

Если убрать функцию остановки мувика при наведении мыши, HTML линки работают, в противном случае - нет.

iNils
14.08.2005, 14:53
Видимо ты текст положил в мувиклип (кнопку)? Иначе бы не смог использовать on(rollOver).
Так вот, мувиклип (кнопка) имеющая обработчик событий мыши, перехватывает все наведения. То есть до A HREF это не доходит.

sher83
14.08.2005, 15:10
хорошо, почему оно не работает, теперь я понимаю, а что делать-то? :)

antonyrec
14.08.2005, 15:17
Попробуй отслеживать координаты мыши в том диапазоне где ты хочешь остановить бегущую строку вместо onRollOver

antonyrec
14.08.2005, 15:23
да, с помощью _xmouse и _ymouse все работает

sher83
14.08.2005, 16:29
а как правильно отслеживать координаты мыши?

я пытался это делать, но непонятно, к какому ивенту привязать определение координат?

MIX-er
14.08.2005, 21:01
можешь юзать онЭнтерфрейм или онмаусмув
у меня чтото вроде этого...
this.onEnterFrame = function() {
if (_ymouse<300 and _ymouse>159 and _xmouse<704 and _xmouse>190) {
speed = int((456-_xmouse)/22);
}
for (var n = 0; n<cat_col; n++) {
scroll_mc["f"+n]._x += speed;
if (scroll_mc["f"+n]._x+200>=w and speed>0) {
scroll_mc["f"+n]._x += -w;
}
if (scroll_mc["f"+n]._x<=-200 and speed<0) {
scroll_mc["f"+n]._x += w;
}
}
};

silin
14.08.2005, 21:35
вариант: смотрим хиттест тестфилда на координаты курсора, ну и двигаем или не двигаем его:
this.createTextField('tf',0,0,0,0,0);
tf.html=tf.autoSize=true;
tf.htmlText="<A HREF=\"http://www.google.com\">www.google.com</A>"

this.onEnterFrame=function(){
if(!this.hitTest.call(tf,_xmouse,_ymouse,false)){
tf._x+=5;
if(tf._x>Stage.width)tf._x-=Stage.width+tf._width;
}
}

sher83
15.08.2005, 13:51
Vsem ogromnoje spasibo! Ja razobralsja! :)