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

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

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

Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
silin, а если мышкой быстро поводить, что будет? Перетягивание каната?))

Твин один, ссылку сохранить и Tween.continueTo()..

Старый 15.07.2007, 16:27
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 12  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
не, не будет перетягивания каната, доказывать/раскладывать в лом, проще попробовать..
хотя один косяк (вернее нюанс) есть: если уводим мышь недоехав до конечной альфы, запустится твин с текущей, но такой же по длительности, т.е. скорость изменения альфы будет меньше..если это критично, тогда канеш надо смотреть что ты предлагаешь..

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

Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
Цитата:
Сообщение от silin
не, не будет перетягивания каната, доказывать/раскладывать в лом, проще попробовать..
Код:
 import mx.transitions.*
var fadeDuration=20;
var defaultAlpha=55;
var i = 0;
function fadeIn(){
	var t = new Tween(this,"_alpha",null,_alpha,100,fadeDuration);
	t['_i_'] = i++;
	t.onMotionChanged = function(){ trace( this['_i_']+ '->>'); }
}
function fadeOut(){
	var t = new Tween(this,"_alpha",null,_alpha,defaultAlpha,fadeDuration);
	t['_i_'] = i++;	
	t.onMotionChanged = function(){ trace('<<-' + this['_i_']); }
}
//mc1, mc2 - кнопки 
mc1._alpha = mc2._alpha=defaultAlpha;
mc1.onRollOver = mc2.onRollOver =fadeIn;
mc1.onRollOut = mc2.onRollOut = fadeOut;
Я быстро провел дважды по одной кнопке - у меня два твина направо, два налево.


Последний раз редактировалось Kikasso; 15.07.2007 в 17:06.
Старый 15.07.2007, 17:32
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 14  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
дада, согласен: полный бардак получается, т.е. по хорошему надо либо работать с одним твином, как ты и говорил, либо озаботиться убить работающий перед тем как зачать новый..
зы: в оправдание, в простых задачках, типа этой, нормально работает и так (в смысле память не замусоривается, процессор тоже не перенапрягается)
зы: к слову: я предлагал (и пользую сам) не хранить ссылку на твин

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

Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
вот примерно так:
Есди твин есть, используем его, если нет, создаем новый, по завершении работы он самоудалится.
Код:
import mx.transitions.*

var inDur = 20;
var outDur = 15;
var pressDur = 5;
var defaultAlpha=40;
var pressAlpha = 60;

function fadeTo( val, dur ){
  if( !this._t_  ){ // если твина нет
    //trace('new');
    this._t_ = new Tween(this,"_alpha",null,this._alpha, val, dur);
    // по окончании твина удалим и ссылку   
    this._t_.onMotionFinished = function(){ delete this.obj._t_; };
  }else{
    //trace('old');
    this._t_.continueTo( val, dur);
  }
}
function fadeIn(){
  fadeTo.apply(this,[ 100, inDur ]);
}
function fadeOut(){
  fadeTo.apply(this,[ defaultAlpha, outDur ]);
}
function fadePress(){
  fadeTo.apply(this,[ pressAlpha, pressDur ]);	
}
/////// нарисуем квадратики //////////////
mc1 = createRect('mc1', 10 );
mc2 = createRect('mc2', 110 );
mc3 = createRect('mc2', 210 );
/////// и запрограммируем их //////////////
mc1._alpha = mc2._alpha = mc3._alpha = defaultAlpha;
mc1.onRollOver = mc2.onRollOver = mc3.onRollOver = fadeIn;
mc1.onRollOut = mc2.onRollOut = mc3.onRollOut = fadeOut;
mc1.onDragOut = mc2.onDragOut = mc3.onDragOut = fadeOut;
mc1.onPress = mc2.onPress = mc3.onPress = fadePress;
mc1.onRelease = mc2.onRelease = mc3.onRelease = function(){
  fadeIn.apply(this);
  trace( 'кнопка '+ this._name + ' нажата');
}
//////////////////////////////////////////
// Это функция рисующая "квадратик"
function createRect(id, x){
	var mc = createEmptyMovieClip(id, getNextHighestDepth());
	with(mc){
		beginFill(0, 100);
		lineTo(90,0); lineTo(90,30); lineTo(0,30); lineTo(0,0);
		endFill();
		}
	mc._x = x;
	return mc;
}
ps - silin, a у вас там _alpha стояла в твине, а надо было this._alpha.
pps - в классе, конечно, такое удобнее. А в кадрах и без твинов можно обойтись..


Последний раз редактировалось Kikasso; 15.07.2007 в 19:51.
Старый 15.07.2007, 19:48
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 16  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
я боюсь впасть в какую-нибудь никому не нужную дискуссию (вроде бы все ясно), но какая такая "this._alpha" в твине, ему же передается свойство в стринге, а объект (this) в первом параметре или я чего-то не понял, о чем речь?
зы: о том что за твинами надо следить (как бы не оставить работающим уже не нужный) знаю не по наслышке (наступал на эти грабли не однократно), полностью согласен - это надо знать
здесь привел такой пример для простоты, подумав, соглашусь: хоть и работает, но привыкать к таким решениям не стоит..

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

Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
Я выделил какая. У нас код в руте, и твин брал начальным значением альфу у рута (100%).
Насчет никому не нужной дискуссии..
Вот я подсмотрел хороший приемчик с передачей null в качестве функции изинга, в класс слазил лишний раз, кое-что придумал.
Так что спасибо ))


Последний раз редактировалось Kikasso; 15.07.2007 в 20:09.
Старый 15.07.2007, 20:15
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 18  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
ага, теперь понял, поправил..
офТоп: подводит привычка писать в классах (там же все "this"), дошло до того, что мне самые обычные вещи удобнее написать в классе, чем думать об областях видимости и кому-что адресовано (это когда пишешь на линейке), при том, что я довольно долго не мог вообще врубиться зачем этому милому AS классовая сущность..
извиняюсь за лирику, но это я для сумлевающихся: надо присмотреться, пощупать классы.., тем более, что другого не дано: в AS3 код в кадрах вообще лишен какого-либо смысла..


Последний раз редактировалось silin; 15.07.2007 в 20:18.
Старый 15.07.2007, 22:58
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 19  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

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

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

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

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


 


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


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