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

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

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

Регистрация: Jun 2007
Сообщений: 21
По умолчанию Ограниченное движение по Х туда-обратно

Дайте правильно направление плиз.
Я сделал вот так, но тут получается что одно и тоже действие выполняется в каждом кадре из-за события enter frame, из-за чего мувик потом прыгает на месте )))

Код:
function xMovie(evt:Event) {
	var xmax:Number = 100;
	var xmin:Number = -200;

	if (mCube.x < xmin) {
		mCube.x = mCube.x + 3;
	} else {
		mCube.x = mCube.x - 5;
	}
}
stage.addEventListener(Event.ENTER_FRAME,xMovie);

Старый 15.07.2008, 11:30
Greenish вне форума Посмотреть профиль Отправить личное сообщение для Greenish Посетить домашнюю страницу Greenish Найти все сообщения от Greenish
  № 2  
Ответить с цитированием
Greenish
 
Аватар для Greenish

Регистрация: Nov 2006
Адрес: Издалёка
Сообщений: 83
Отправить сообщение для Greenish с помощью ICQ Отправить сообщение для Greenish с помощью Skype™
используйте класс Tween или Tweener. Вся программная анимация проще делается с помощью них.

Старый 15.07.2008, 11:44
mre вне форума Посмотреть профиль Отправить личное сообщение для mre Посетить домашнюю страницу mre Найти все сообщения от mre
  № 3  
Ответить с цитированием
mre
 
Аватар для mre

Регистрация: Jul 2007
Адрес: Москва
Сообщений: 996
Код:
private const X_MAX:Number = 100;
private const X_MIN:Number = -200;
private var direction:Boolean = true;

private function update(evt:Event) 
{
	if (mCube.x < X_MIN) 
        {
                direction = true;
                mCube.x = X_MIN;
	} 
        else if (mCube.x > X_MAX) 
        {
                direction = false;
                mCube.x = X_MAX;
	}
        else
        {
                mCube.x += direction?1:-1;
        }
}

Старый 15.07.2008, 12:26
Rzer вне форума Посмотреть профиль Отправить личное сообщение для Rzer Посетить домашнюю страницу Rzer Найти все сообщения от Rzer
  № 4  
Ответить с цитированием
Rzer
 
Аватар для Rzer

блогер
Регистрация: Feb 2007
Адрес: Spb
Сообщений: 613
Записей в блоге: 8
Отправить сообщение для Rzer с помощью ICQ
Условие твое неверное - доходя до ста, сначала выполняется else и число становиться меньше и опять выполняется стандартное условие и так до бесконечности.

Старый 15.07.2008, 12:30
Faster_ вне форума Посмотреть профиль Отправить личное сообщение для Faster_ Найти все сообщения от Faster_
  № 5  
Ответить с цитированием
Faster_
 
Аватар для Faster_

Регистрация: Jun 2007
Сообщений: 21
Спасибо, а можно прокоментировать строку
Код:
mCube.x += direction?1:-1;
Что здесь происходит?

Старый 15.07.2008, 12:33
Rzer вне форума Посмотреть профиль Отправить личное сообщение для Rzer Посетить домашнюю страницу Rzer Найти все сообщения от Rzer
  № 6  
Ответить с цитированием
Rzer
 
Аватар для Rzer

блогер
Регистрация: Feb 2007
Адрес: Spb
Сообщений: 613
Записей в блоге: 8
Отправить сообщение для Rzer с помощью ICQ
Это условие. Есть оператор ?: наподобие if else - его лучше не использовать - читабельность кода падает. если direction ==true то +1, если же нет то -1

Старый 15.07.2008, 12:40
Faster_ вне форума Посмотреть профиль Отправить личное сообщение для Faster_ Найти все сообщения от Faster_
  № 7  
Ответить с цитированием
Faster_
 
Аватар для Faster_

Регистрация: Jun 2007
Сообщений: 21
Спасибо, вроде вкурил немнога

Старый 15.07.2008, 12:51
mre вне форума Посмотреть профиль Отправить личное сообщение для mre Посетить домашнюю страницу mre Найти все сообщения от mre
  № 8  
Ответить с цитированием
mre
 
Аватар для mre

Регистрация: Jul 2007
Адрес: Москва
Сообщений: 996
Цитата:
Сообщение от Rzer Посмотреть сообщение
Условие твое неверное - доходя до ста, сначала выполняется else и число становиться меньше и опять выполняется стандартное условие и так до бесконечности.
Серьезно?

Цитата:
Сообщение от Rzer Посмотреть сообщение
Это условие. Есть оператор ?: наподобие if else - его лучше не использовать - читабельность кода падает. если direction ==true то +1, если же нет то -1
Код:
if (direction == true)
{
         mCube.x += 1;
}
else
{
         mCube.x -= 1;
}
Код:
mCube.x += direction?1:-1;
Уверен?


Последний раз редактировалось mre; 15.07.2008 в 12:58.
Старый 15.07.2008, 13:02
Alex Lexcuk вне форума Посмотреть профиль Отправить личное сообщение для Alex Lexcuk Посетить домашнюю страницу Alex Lexcuk Найти все сообщения от Alex Lexcuk
  № 9  
Ответить с цитированием
Alex Lexcuk

блогер
Регистрация: Mar 2008
Адрес: Донецк_city
Сообщений: 1,094
Записей в блоге: 5
Примерчик с твином туда обратно
Код:
import fl.transitions.*;
import fl.transitions.easing.*;
import fl.transitions.TweenEvent;

var myTween:Tween;
 //0 - старт, 300 - финиш, 3 - скорость, true - плавность
myTween= new Tween(mCube, "x", None.easeOut, 0, 300, 3, true);
myTween.addEventListener(TweenEvent.MOTION_FINISH, tween_finish);

function tween_finish(TweenEvent)
{
myTween.yoyo();	
}

Старый 15.07.2008, 13:36
kim2 вне форума Посмотреть профиль Отправить личное сообщение для kim2 Найти все сообщения от kim2
  № 10  
Ответить с цитированием
kim2

Регистрация: Jan 2006
Сообщений: 17
Отправить сообщение для kim2 с помощью ICQ
Вот так без Tween
Код:
var offset:Number = 3;
var xmax:Number = 100;
var xmin:Number = -200;
mCube.x = xmin;
function xMovie(evt:Event) {

	if (mCube.x < xmin) {
		offset = 3;
	} else if(mCube.x > xmax) {
		offset = -5;
	}
	mCube.x += offset;
}
stage.addEventListener(Event.ENTER_FRAME,xMovie);


Последний раз редактировалось kim2; 15.07.2008 в 13:44.
Создать новую тему Ответ Часовой пояс GMT +4, время: 04:24.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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