Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Помогите с панорамным движением (http://www.flasher.ru/forum/showthread.php?t=98472)

sqrt 13.07.2007 18:47

Помогите с панорамным движением
 
У меня есть панорамная картинка 11700х270. мне надо что она двигалась, а когда доходила до конца, то опять ишла по кругу.Пример как на сайте citroen.ru. Я сделал так что она по умолчанию движеться слева направо, с левого и правгого бока сделал кнопочки при наведении на них взависимости от стороный картинка изменяет скорость и направление(если левая кнопка-влево+скорость, права-вправо+скорость). Теперь чтоб она проигрывалась по кругу. понятней будет если зайти на сайт citroen.ru. Помогите пожалуйста

ScaredShard 13.07.2007 19:34

две картинки рядом в мувике построй и "крути" две сразу с проверкой координат

sqrt 13.07.2007 20:24

Код:

w=11700;
ow=11650;
_root.rb.useHandCursor=false;
_root.lb.useHandCursor=false;
onEnterFrame=function()

gl._x-=2;
gl1._x-=2;
rb.onRollOver=function(){
    onEnterFrame=function(){
    gl._x-=4;
    gl1._x-=4;
}}
rb.onPress=function(){
    onEnterFrame=function(){
    gl._x-=10;
    gl1._x-=10;
}}
rb.onRelease=function(){
    onEnterFrame=function(){
    gl._x-=4;
    gl1._x-=4;
}}
rb.onRollOut=function(){
    onEnterFrame=function(){
    gl._x-=2;
    gl1._x-=2;
}}
lb.onRollOver=function(){
    onEnterFrame=function(){
    gl._x=gl._x+4;
    gl1._x=gl1._x+4;
}}
lb.onPress=function(){
    onEnterFrame=function(){
    gl._x=gl._x+10;
    gl1._x=gl1._x+10;
}}
lb.onRelease=function(){
    onEnterFrame=function(){
    gl._x=gl._x+4;
    gl1._x=gl1._x+4;
}}
lb.onRollOut=function(){
    onEnterFrame=function(){
    gl._x-=2;
    gl1._x-=2;
}}
x1=_root.gl1._x;
x2=_root.gl._x;
x1+=2;
if(x1<-_root.ow){
x1+=_root.ow;
}
if(x1>0){
x1=-_root.ow;
}
x2=x1+_root.ow;
_root.gl1._x=x1;
_root.gl._x=x2+2;
}

вот исходный код.
gl,gl1-картинка 1 и 2
lb,rb-соответственно кнопки.
мне просто надо чтоб при нажатии было проигрывалось быстрей и при наведении медленей

iNils 13.07.2007 20:29

Для оформления своего кода, надо использовать теги [code][/code].

Wolsh 15.07.2007 03:45

Примерно так:
Код:

speed=2;// скорость
napr=1;// направление
_root.rb.useHandCursor=false;
_root.lb.useHandCursor=false;
onEnterFrame=function()

gl._x+=speed*napr;
rb.onRollOver=function(){
    speed=-4;
        napr=1;
    }
rb.onPress=function(){
    speed=-10;
        napr=1;
    }
rb.onRelease=rb.onRollOver;
rb.onRollOut=function(){
    speed=-2;
        napr=1;
    }
lb.onRollOver=function(){
    speed=4;
        napr=1;
    }
lb.onPress=function(){
    speed=10;
        napr=1;
    }
lb.onRelease=lb.onRollOver;
lb.onRollOut=function(){
    speed=-2;
        napr=1;
    }
napr*=gl._x>-10 ? -1 : gl._x<(Stage.width+10-gl._width) ? -1 : 1;
}

Только я тут предположил что ты воспользовался советом свыше и засунул все картинки в ОДИН мувик :)
---------------- u p d a t e -----------------------
Cорри, я тут с утра на свежую голову перечитал - тебе другое нужно.
Здесь картинка до конца доходит и начинает двигаться в обратную сторону, а тебе надо по кругу.
Код не удаляю, может кому пригодится, а тебе попробую написать другой.

Wolsh 15.07.2007 13:01

Ну вот это работает, только мигает в момент подстановки... Не знаю, можно ли както вылечить. gl и gl1 - два совершенно одинаковых мувика, их надо поставить в ряд вплотную.
Код:

speed=2;
smesh=-gl._width;
_root.rb.useHandCursor=false;
_root.lb.useHandCursor=false;
onEnterFrame=function()

gl._x=gl._x+speed;
gl1._x=gl._x+smesh;
//кнопки
rb.onRollOver=function(){
    speed=-4;
        }
rb.onPress=function(){
    speed=-10;
        }
rb.onRelease=rb.onRollOver;
rb.onRollOut=function(){
    speed=-2;
        }
rb.onReleaseOutside=rb.onRollOut;
lb.onRollOver=function(){
    speed=4;
        }
lb.onPress=function(){
    speed=10;
        }
lb.onRelease=lb.onRollOver;
lb.onRollOut=function(){
    speed=-2;
        }
lb.onReleaseOutside=lb.onRollOut;
//условия перестановок
if(gl._x>-100 && gl1._x>gl._x){
        smesh = -gl._width;
    }
if(gl._x<(Stage.width+100-gl._width)&& gl1._x<gl._x){
        smesh = gl._width;
    }
if(gl._x>gl._width-100){
        gl._x = gl._x-gl._width*2;
    }
if(gl._x<-100-gl._width){
        gl._x = gl1._x+gl._width;
    }
}


sqrt 18.07.2007 13:34

не работает

они и так стоят вместе

CGandA 18.07.2007 15:10

Вложений: 1
Вот так работает

Wolsh 18.07.2007 16:21

куда там не работает. я штоли прямо из головы тебе сюда написал :) всё протестено.

sqrt 26.07.2007 14:57

ну а как избавиться от мигания??


Часовой пояс GMT +4, время: 10:51.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.