Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 16.07.2010, 00:50
cepbra вне форума Посмотреть профиль Отправить личное сообщение для cepbra Найти все сообщения от cepbra
  № 1  
Ответить с цитированием
cepbra

Регистрация: Jul 2010
Сообщений: 6
По умолчанию Помогите разобраться с кодом анимации, нужно сделать её автоматической

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

вот код движения влево-право за мышью

Код AS3:
 
package actionscript
{
import flash.display.*;
import flash.events.Event;
import flash.events.MouseEvent;
 
public class CreateBg extends Sprite
{  
 internal static var bgConteiner:Sprite;
 protected var _Speed:Number;
 protected var _SpeedLeft:Number;
 protected var _SpeedRight:Number;
 //
 public function CreateBg()
 {
  stage.scaleMode=StageScaleMode.NO_SCALE;
  stage.align=StageAlign.TOP_LEFT;
 
  bgMaiker();
 }
 
 protected function bgMaiker()
 {
  _Speed = 0.02;
  bgConteiner = new Sprite;
  stage.addChild(bgConteiner)
  var bg:jpg = new jpg;
  bgConteiner.addChild(bg)
  stage.addEventListener(Event.ENTER_FRAME, checkPosition)  //слушатель события
 }
 
//функция проверки позиции объекта
 protected function checkPosition(evt:Event):void
 {
  if(mouseX < stage.stageWidth/2) {moveLeft();}
  else{moveRight();}
  _SpeedRight = bgConteiner.x + (bgConteiner.width/2 - stage.stageWidth); //скорости
  //trace(_SpeedRight)
  _SpeedLeft = bgConteiner.width/2 - bgConteiner.x;
  //trace(_SpeedLeft)
 
 }
 
 //Движение вправо
 private function moveRight():void
 {
  if(bgConteiner.x > stage.stageWidth - bgConteiner.width/2) {bgConteiner.x -= (_Speed * _SpeedRight);}
  else{bgConteiner.x = stage.stageWidth - bgConteiner.width/2}
 }
 
//Движение влево 
 private function moveLeft():void
 {
  if(bgConteiner.x < bgConteiner.width/2) {bgConteiner.x += (_Speed * _SpeedLeft);}
  else{bgConteiner.x = bgConteiner.width/2}
 }
 
}
}
Помогите советом, какую нужно сюда вкрутить функцию, чтобы картинка сама по себе ездила туда и обратно
Заранее благодарен

Старый 16.07.2010, 17:36
Lao_kutuz вне форума Посмотреть профиль Отправить личное сообщение для Lao_kutuz Найти все сообщения от Lao_kutuz
  № 2  
Ответить с цитированием
Lao_kutuz

Регистрация: Nov 2008
Сообщений: 43
Отлавливаешь событие отведения мыши или совсем ухода мыши со сцены, в тот момент удаляешь свой слушатель и запускаешь новый ENTER_FRAME, который в зависимости от некой переменной двигает её влево допустим, при достижении границы меняешь эту переменную на другое значение, при котором картинка будет идти вправо

Создать новую тему Ответ Часовой пояс GMT +4, время: 15:58.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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