PDA

Просмотр полной версии : Границы рабочего поля


U4enik
30.12.2010, 17:05
Приветствую. Искал ответ на форуме но не нашел.
Есть такой код:

onMouseMove = function()
{
clip._x = _root._xmouse;
if( clip._x < 0)
{
clip._x = 0;
updateAfterEvent();
}

updateAfterEvent();
}

Тоесть "clip" двигается вслед за курсором. Как сделать так чтобы при достижении левой границы Stage это клип дальше не двигался а оставался возле границы ? Вобщем чтобы объект не покидал Stage ?

mooncar
30.12.2010, 17:23
Ну в общем-то приведенный вами код близок к тому, что требуется.
В чем трудность?

Tails
30.12.2010, 17:23
В этом коде нету ошибок, клип не покидает stage с лева.

Почему у меня в школе небыло дз по флеши :'(

U4enik
30.12.2010, 17:25
Ну в общем-то приведенный вами код близок к тому, что требуется.
В чем трудность?

Не работает почему-то...

Tails
30.12.2010, 17:26
Запусти флешку, растяни окно по горизонтали и тестируй.

Хм, этот код отлично работает если не менять размеры окна флешки. Но если нужно отслеживать стаге при изминённых размерах, да ещё не дай бох с масштабированием ...

mooncar
По сути этот код нечерта не стаге отслеживает.

щас всё будет ...

U4enik
30.12.2010, 17:40
Запусти флешку, растяни окно по горизонтали и тестируй.

Хм, этот код отлично работает если не менять размеры окна флешки. Но если нужно отслеживать стаге при изминённых размерах, да ещё не дай бох с масштабированием ...

mooncar
По сути этот код нечерта не стаге отслеживает.

Нет, размеры окна менять не надо, надо чтобы например когда вслед за курсором двигается клип то при достижении краем клипа окна флешки клип должен смещаться чтобы его было видно полностью.

Добавлено через 7 минут
Всем спасибо. Я допер в чем прикол. Просто надо было регистрировать 0-вые координаты клипа в углу этого клипа а не в центре :). Дальше уже разберусь.

С наступающим Новым Годом всех флешеров!!!

Tails
30.12.2010, 17:50
Вот блин, а я тут старался чтобы он даже при масштабирований ...
С НОВЫМ ГОДОМ !

var startWidth=Stage.width;
Stage.scaleMode = "noScale";

onMouseMove = function(){
clip._x =_xmouse;
if( clip._x < -(Stage.width-startWidth)/2){ clip._x = (-(Stage.width-startWidth)/2);
updateAfterEvent();
}
updateAfterEvent();}

В моём коде юзаеца реальное stage

U4enik
30.12.2010, 23:47
Вот блин, а я тут старался чтобы он даже при масштабирований ...
С НОВЫМ ГОДОМ !

var startWidth=Stage.width;
Stage.scaleMode = "noScale";

onMouseMove = function(){
clip._x =_xmouse;
if( clip._x < -(Stage.width-startWidth)/2){ clip._x = (-(Stage.width-startWidth)/2);
updateAfterEvent();
}
updateAfterEvent();}

В моём коде юзаеца реальное stage

А за код спасибо, я люблю ковыряться в скриптах, пригодится, еще раз с новым 2011 годом!!! Да здравствует FLASH!