как заставить изображение двигаться, когда курсор находится у края экрана - PullRequest
1 голос
/ 16 ноября 2011

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

Я пытался найти сценарий для этого, но, видимо, языковой барьер для меня слишком большой.

1 Ответ

0 голосов
/ 16 ноября 2011

Сначала подумайте о логике, а затем приступайте к ее реализации:)

Сначала вам нужно установить контейнер для вашего изображения, для того чтобы это изображение зациклилось, вы можете добавить то же изображение

 - in front of the current image when the current image x > 0
 - after the current image when 
   image.x = - (image.width + stage.stageWidth )//in full screen 

Чтобы проверить это, вы можете установить прослушиватель события enter frame, который позаботится о перемещении контейнера x в одном или другом направлении

     //going right
     container.x += 10

     //going left
     container.x -= 10

Так что в целом вам просто понадобятся дваизображения, и вы меняете положение, как только вы выходите из экрана.

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

Например, чтобы контейнер двигался с максимальной скоростью, вам нужно, чтобы значение mouseX было близко к 0, чтобы контейнер не перемещался, значение mouseX должно быть равно stage.stageWidth / 2, centerэкрана, и чтобы контейнер двигался влево с максимальной скоростью, значение mouseX должно быть stage.stageWidth.

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

В прослушивателе событий ввода кадра вы можете изменить его на:

     container.x += speed;

Это должно помочь вам начать;)

...