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

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

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

Регистрация: Jul 2006
Сообщений: 136
Отправить сообщение для khorokhorya с помощью ICQ
По умолчанию Почему то не работает приближение /удаление с флагом.

Может ошибка в написании, без abbleToPlay работает, а с ним нет((( , а мне надо , чтобы на нажатие приближалось, а когда ещё раз по нему нажали удалилось.


Код:
import mx.transitions.Tween;
import mx.transitions.easing.*;

sofiaXnach = sofia._x;
sofiaYnach = sofia._y;
sofiaXSN = sofia._xscale;
sofiaYSN = sofia._yscale;

var abbleToPlay:Boolean = true;

sofia.onRelease = function (){
    (!abbleToPlay)? this.blizko() : this.daleko();
    abbleToPlay = !abbleToPlay
}

function blizko() {
	new Tween(sofia, "_xscale", mx.transitions.easing.Regular.easeOut , sofiaXSN, 100, 3, true);
	new Tween(sofia, "_yscale", mx.transitions.easing.Regular.easeOut, sofiaYSN, 100, 3, true);
	new Tween(sofia, "_x", mx.transitions.easing.Regular.easeOut, sofiaXnach, -315, 3, true);
	new Tween(sofia, "_y", mx.transitions.easing.Regular.easeOut, sofiaYnach, -222, 3, true);
};

function daleko() {
	new Tween(sofia, "_xscale", mx.transitions.easing.Regular.easeOut , 100, sofiaXSN, 3, true);
	new Tween(sofia, "_yscale", mx.transitions.easing.Regular.easeOut, 100, sofiaYSN, 3, true);
	new Tween(sofia, "_x", mx.transitions.easing.Regular.easeOut,  -315, sofiaXnach, 3, true);
	new Tween(sofia, "_y", mx.transitions.easing.Regular.easeOut, -222,  sofiaYnach, 3, true);
};


Последний раз редактировалось iNils; 10.03.2008 в 22:41.
Старый 10.03.2008, 23:00
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 2  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Код:
import mx.utils.Delegate;
import mx.transitions.Tween;
import mx.transitions.easing.*;
sofiaInitX = sofia._x;
sofiaInitY = sofia._y;
sofiaInitXScale = sofia._xscale;
sofiaInitYScale = sofia._yscale;
var tween:Tween = null;
var kf:Number = 0;
var flag:Boolean = false;
//
sofia.onRelease = Delegate.create (this, onRelease);
function onRelease () {
	var kf2:Number = null;
	if (flag) {
		kf2 = 0;
	} else {
		kf2 = 1;
	}
	tween.stop ();
	tween = new Tween (this, "kf", mx.transitions.easing.Regular.easeOut, kf, kf2, 3, true);
	tween.onMotionChanged = Delegate.create (this, onMotionChanged);
	flag = !flag;
}
function onMotionChanged () {
	sofia._xscale = sofiaInitXScale + (100 - sofiaInitXScale) * kf;
	sofia._yscale = sofiaInitYScale + (100 - sofiaInitYScale) * kf;
	sofia._x = sofiaInitX + (-315 - sofiaInitX) * kf;
	sofia._y = sofiaInitY + (-222 - sofiaInitY) * kf;
}
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 10.03.2008, 23:14
khorokhorya вне форума Посмотреть профиль Отправить личное сообщение для khorokhorya Посетить домашнюю страницу khorokhorya Найти все сообщения от khorokhorya
  № 3  
Ответить с цитированием
khorokhorya

Регистрация: Jul 2006
Сообщений: 136
Отправить сообщение для khorokhorya с помощью ICQ
спасибо, только получается , что он както заторможено прилетает и улетает, вся красота tween пропала, и не настроить теперь за сколько кадров делать твин(((
можно просто включать и выключать то что было?

Старый 11.03.2008, 00:02
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 4  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
У вас в корне не правильно было сделано.
1. Не надо запускать 4 твина одновременно
2. Вы не убиваете твины запуская новые, в результате они работают параллельно мешая друг другу.

Что значит заторможенно? И почему не настроить время анимации?
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 11.03.2008, 00:35
khorokhorya вне форума Посмотреть профиль Отправить личное сообщение для khorokhorya Посетить домашнюю страницу khorokhorya Найти все сообщения от khorokhorya
  № 5  
Ответить с цитированием
khorokhorya

Регистрация: Jul 2006
Сообщений: 136
Отправить сообщение для khorokhorya с помощью ICQ
Заторможено в смысле нет гашения скорости при подходе к конечной точке, скорость линейна , хотя там написано easeOut, видимо вы убиваете твин периодически и он мелкими шажочками дотягивает до конечной точки.

Старый 11.03.2008, 00:52
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 6  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Есть гашение. Поставьте в onMotionChanged
Код:
trace (kf)
и увидете, что kf меняется нелинейно.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 11.03.2008, 00:59
khorokhorya вне форума Посмотреть профиль Отправить личное сообщение для khorokhorya Посетить домашнюю страницу khorokhorya Найти все сообщения от khorokhorya
  № 7  
Ответить с цитированием
khorokhorya

Регистрация: Jul 2006
Сообщений: 136
Отправить сообщение для khorokhorya с помощью ICQ
Спасибо, большое за помощь, я уже поняла, что там намудрила) фиговый из меня флешер, я просто не могу даже разобраться в вашем коде)

Старый 11.03.2008, 01:02
khorokhorya вне форума Посмотреть профиль Отправить личное сообщение для khorokhorya Посетить домашнюю страницу khorokhorya Найти все сообщения от khorokhorya
  № 8  
Ответить с цитированием
khorokhorya

Регистрация: Jul 2006
Сообщений: 136
Отправить сообщение для khorokhorya с помощью ICQ
помогите мне пожалуйста вот с этим http://www.flasher.ru/forum/showthread.php?t=109220
может у вас есть готовый скрипт xml -меню с таким раскрытием и разъезжанием ? или намётки , где посмотреть?

Старый 11.03.2008, 01:10
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 9  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
да все просто
импортируем классы
Код:
import mx.utils.Delegate;
import mx.transitions.Tween;
import mx.transitions.easing.*;
базовые значения свойст, я их переназвал, чтобы были более понятны всем
Код:
sofiaInitX = sofia._x;
sofiaInitY = sofia._y;
sofiaInitXScale = sofia._xscale;
sofiaInitYScale = sofia._yscale;
объявляем свойство ссылку на твин, чтобы можно было потом обратится к нему
Код:
var tween:Tween = null;
это общий коэффициент, по которому будем вычислять измения (это удобно, и возможно благодаря тому, что общее время всех ваших твинов было одно)
Код:
var kf:Number = 0;
флаг направлений вперед/назад
Код:
var flag:Boolean = false;
делегат позволяет изменить область видимости внутри функции, раньше this ссылался на sofia, а теперь на его(ее) предка
Код:
sofia.onRelease = Delegate.create (this, onRelease);
Код:
function onRelease () {
	//// определяем направление
	var kf2:Number = null;
	if (flag) {
		kf2 = 0;
	} else {
		kf2 = 1;
	}
	//// тормозим старый твин, иначе старЫЕ и новый будут работать одновременно
	tween.stop ();
	//// запускаем новый твин
	tween = new Tween (this, "kf", mx.transitions.easing.Regular.easeOut, kf, kf2, 3, true);
	//// назначаем функцию обработчик твина, который при каждом измении kf будет вызвать onMotionChanged и там узменять параметры мувика
	tween.onMotionChanged = Delegate.create (this, onMotionChanged);
	//// меняем флаг направлений
	flag = !flag;
}
благодаря коэффициенту, вычисление происходит за счет добавления к стартовому значению дельты (разница между максимальным и минимальным значением) умноженой на коэффициент
Код:
function onMotionChanged () {
	sofia._xscale = sofiaInitXScale + (100 - sofiaInitXScale) * kf;
	sofia._yscale = sofiaInitYScale + (100 - sofiaInitYScale) * kf;
	sofia._x = sofiaInitX + (-315 - sofiaInitX) * kf;
	sofia._y = sofiaInitY + (-222 - sofiaInitY) * kf;
}
__________________
(и)Нильс.ru | Плагины для FlashDevelop

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

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

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


 


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


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