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

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

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

Регистрация: Mar 2010
Адрес: г.Златоуст
Сообщений: 19
Отправить сообщение для MkTwo с помощью ICQ
По умолчанию Плавное возвращение

Вобщем вопрос такой) Есть ползунок (movieClip), нужно чтобы он перетаскивался при нажатии на нём мышкой. Причём если он не передвинут в противоположный конец - то совершался бы плавный откат на исходное положение. Код должен находиться на самом мувиклипе... Перетаскивание получилось, плавный откат - нет...Подскажите что не так, вот код:
Код AS1/AS2:
on (press)
{
    startDrag (this, true, 40, 85, 200, 85);
}
on (release)
{
    stopDrag ();
    if (this._x < 200)
    {
        this._x = this._x-1;
    }
        else
    {
        _root.gotoAndPlay(2);
        this._x = 40;
        this._y = 85;
    }
}

Старый 06.04.2010, 16:32
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 2  
Ответить с цитированием
in4core
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Что за бред про то что код должен быть на мувиклипе?
Вот нормальная реализация. там разберешься
Код AS1/AS2:
var id;
var setTime = 2;
var fadeTime = 100;
btn.onPress = function() {  clearInterval(id); this.startDrag("",false, 40,0,200,0) }
btn.onRelease = checkPoint;
function checkPoint() {
        btn.stopDrag();
        if(btn._x < 200) { clearInterval(id);  id= setInterval(fade,fadeTime) } else { clearInterval(id); }
}
function fade() {
      if(btn._x>40 && btn._x <200) { btn._x = btn._x-setTime }
     else { clearInterval(id); }
}


Последний раз редактировалось in4core; 06.04.2010 в 16:35.
Старый 06.04.2010, 16:42
MkTwo вне форума Посмотреть профиль Отправить личное сообщение для MkTwo Найти все сообщения от MkTwo
  № 3  
Ответить с цитированием
MkTwo
 
Аватар для MkTwo

Регистрация: Mar 2010
Адрес: г.Златоуст
Сообщений: 19
Отправить сообщение для MkTwo с помощью ICQ
не пашет, ещё варианты будут? по возможности дополните мой код

Старый 06.04.2010, 17:08
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 4  
Ответить с цитированием
in4core
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
все там пашет. разобраться вам надо сначала. А не просить написать за вас готовый скрипт. что впринципе я уже и сделал

Добавлено через 10 минут
Щас ради интереса даже проверил что я тут наобум написал. Написал я все верно, тока скорость мелкую задал и координаты немного не так.
Создай на сцене клип btn помести его в 0-0 координаты и напиши код :
Код AS1/AS2:
var id;
var setTime = 2;
var fadeTime = 10;
btn.onPress = function() {
	clearInterval(id);
	this.startDrag("",false,0,500,0,0);
};
btn.onRelease = btn.onReleaseOutside = checkPoint;
function checkPoint() {
	btn.stopDrag();
	if (btn._x<500) {
		clearInterval(id);
		id = setInterval(fade, fadeTime);
	} else {
		clearInterval(id);
	}
}
function fade() {
	if (btn._x>0 && btn._x<500) {
		btn._x = btn._x-setTime;
	} else {
		clearInterval(id);
	}
}


Последний раз редактировалось in4core; 06.04.2010 в 17:19.
Старый 06.04.2010, 17:32
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 5  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Вот так, например (см. вложение):
Код AS1/AS2:
import mx.transitions.Tween;
 
var timeToBack:Number = 0.5; //время на откат
var xLimitLeft:Number = 45;
var xLimitRight:Number = 450;
var x0:Number = fader._x ; //запоминаем начальное положение
 
fader.onPress = function  () {
	this.startDrag(false, xLimitLeft, this._y, xLimitRight, this._y);
};
fader.onRelease = fader.onReleaseOutside = function  () {
	this.stopDrag();
	if (this._x != xLimitLeft && this._x !=  xLimitRight) {
		backIt(this);
	}	
};
 
function backIt (mc:MovieClip) {
	var back:Tween = new Tween (mc, '_x', mx.transitions.easing.Strong.easeOut, mc._x, x0, timeToBack, true);
}
Вложения
Тип файла: rar Ползунок с откатом.rar (8.6 Кб, 53 просмотров)


Последний раз редактировалось mooncar; 06.04.2010 в 17:49.
Старый 06.04.2010, 17:44
MkTwo вне форума Посмотреть профиль Отправить личное сообщение для MkTwo Найти все сообщения от MkTwo
  № 6  
Ответить с цитированием
MkTwo
 
Аватар для MkTwo

Регистрация: Mar 2010
Адрес: г.Златоуст
Сообщений: 19
Отправить сообщение для MkTwo с помощью ICQ
Сделал!
Код AS1/AS2:
function goback()
{
    if (goingback)
    {
        slider._x = slider._x - 20;
    } // end if
    if (slider._x <= 42)
    {
        slider._x = 40;
        clearInterval(intervalid);
        goingback = false;
    }
}
goingback = false;
slider.onPress = function() 
{
	clearInterval(id);
	this.startDrag("",false,85,200,85,40);
};
slider.onMouseUp = function ()
{
    this.stopDrag();
    if (slider._x < 200)
    {
        goingback = true;
        intervalid = setInterval(goback, 1);
    }
    else
    {
        _root.gotoAndPlay(2);
        slider._x = 40;
        slider._y = 85;
    } // end else if
};
stop ();


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

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

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


 


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


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