![]() |
|
||||||||||
|
|||||
|
Регистрация: Sep 2005
Сообщений: 33
|
Дорогие друзья, я знаю, мы вас уже задрали с вопросами о том как сделать паузу в скрипте, но скажу как есть - я перерыл кучу инфы, нашел как минимум пять вариантов как сделать паузу, но не один не получилось использовать. По этому спрошу на конкретном примере.
Вот у меня есть такая функция, которая делает "затухание" загруженной картинки и по окончанию процесса, вызывает загрузку следующей: fade = function(img, newAlpha : Number, speed : Number) : Void {
img.currentAlpha = img._alpha;
img.onEnterFrame = function() : Void {
if(img.currentAlpha > newAlpha) {
img._alpha -= speed;
}
else if(img.currentAlpha < newAlpha) {
img._alpha += speed;
}
if (Math.abs(Math.round(newAlpha-img._alpha)) <= speed) {
img._alpha = newAlpha;
delete img.onEnterFrame;
// Load next image
loadImage();
}
};
};
Заранее признателен. Спасибо. |
|
|||||
|
Banned
Регистрация: Oct 2003
Сообщений: 206
|
class org.nuran.Timeout
{
private static var _intervals:Array = new Array ();
private var id:Number;
public function Timeout ()
{
id = _intervals.length;
_intervals[id] = setInterval (function (i:Number, a:Array)
{
a[0].apply (null, a.splice (2, arguments.length));
clearInterval (_intervals[i]);
}, arguments[1], id, arguments);
}
public function Clear ():Void
{
clearInterval (_intervals[id]);
}
}
|
|
|||||
|
Попробуй так:
fade = function(img, newAlpha : Number, speed : Number, pause : Number) : Void {
img.currentAlpha = img._alpha;
startTime=getTimer();
_root.onEnterFrame=function () {
if ((getTimer()-startTime)>pause) {
delete _root.onEnterFrame;
img.onEnterFrame = function() : Void {
if(img.currentAlpha > newAlpha) {
img._alpha -= speed;
}
else if(img.currentAlpha < newAlpha) {
img._alpha += speed;
}
if (Math.abs(Math.round(newAlpha-img._alpha)) <= speed) {
img._alpha = newAlpha;
delete img.onEnterFrame;
// Load next image
loadImage();
}
};
};
};
};
__________________
Я не волшебник, я только учусь :p |
|
|||||
|
Регистрация: Sep 2005
Сообщений: 33
|
Цитата:
|
|
|||||
|
Регистрация: Sep 2005
Сообщений: 33
|
Цитата:
Спасибо - это работает! |
|
|||||
|
Регистрация: Sep 2005
Сообщений: 33
|
Vitamin E: Единственная проблема в том, что на _root.onEnterFrame у меня уже висит функция бегущей строки и как только дела доходит до этой "паузы", то моя функция "умирает" - это можжно как то решить? Спасибо.
|
|
|||||
|
Регистрация: Sep 2005
Сообщений: 33
|
Еще раз всем спасибою С классом то же разобрался и этот вариант мне подошел лучше.
|
|
|||||
|
Banned
Регистрация: Oct 2003
Сообщений: 206
|
Сорри, там в классе нашлась ошибочка, вернее очепятка, хех, я его уже использую пол года и не замечал =)))
Вот так без ошибок: class org.nuran.Timeout
{
private static var _intervals:Array = new Array ();
private var id:Number;
public function Timeout ()
{
id = _intervals.length;
_intervals[id] = setInterval (function (i:Number, a:Array)
{
a[0].apply (null, a.splice (2, a.length));
clearInterval (_intervals[i]);
}, arguments[1], id, arguments);
}
public function Clear ():Void
{
clearInterval (_intervals[id]);
}
}
|
|
|||||
|
Регистрация: Jun 2006
Сообщений: 60
|
Здраствуйте!
Помогите кто чем может: stop(); root.onEnterFrame=pause; function pause() { if (getTimer()>tim)return; pause(); } attachMovie("c1", "c1", 1); tim=getTimer()+100; pause(); attachMovie("c2", "c2", 2); смысл в том чтобы между появлением клипов была пауза. заранее благодарю. |
![]() |
![]() |
Часовой пояс GMT +4, время: 23:41. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|