Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Tween внутри EnterFrame не работает (http://www.flasher.ru/forum/showthread.php?t=137271)

Universe 09.03.2010 16:20

Tween внутри EnterFrame не работает
 
Хочу сделать эффект перемещения объекта при помощи Tween. Enter Frame использую как счётчик!
Вот код:
Код AS1/AS2:

import mx.transitions.Tween;
import mx.transitions.easing.*;
 
 
var arrowOut:Tween;
var arrowAlpha:Tween;
 
function moveArrow(obj:MovieClip)
{
arrowOut = new Tween(obj, "_x", Regular.easeOut, -220, 0, 25, false);
}
 
moveArrow(arrow_mc);
 
var counter:Number = 0;
 
this.onEnterFrame = function()
{
        if(counter == 300)
        {
                loaderPro.contentPath = "pics/news2.jpg";
                moveArrow(_root.arrow_mc);
        }
        else if(counter == 600)
        {
                loaderPro.contentPath = "pics/news3.jpg";
                moveArrow(arrow_mc);
        }
        else if (counter == 900)
        {
                loaderPro.contentPath = "pics/news1.jpg";
                counter = 0;
        }
        else if(counter == 270)
        {
                arrowAlpha = new Tween(arrow_mc, "_alpha", Regular.easeOut, 100, 0, 30, false) ;
                arrowAlpha.onMotionFinished = function()
                {
                        arrow_mc._x = -220;
                        trace(arrow_mc._x);
                }
        }
 
        counter++;
}
 
newsNum1.onRelease = function()
{
        counter = 720;
}
newsNum2.onRelease = function()
{
        counter = 240;
}
newsNum3.onRelease = function()
{
        counter = 480;
}

Проблема в том, что снаружи твин работает, а внутри EnterFrame не запускается!

in4core 09.03.2010 16:39

Сет интервал в помощь например вместо маяка. Попробуй если не прокатит, проверю, сам напишу

Добавлено через 2 минуты
АААААААААААААААААААА. вы сума сошли! Я понял в чем косяк ваш скорее всего. вы сам то коунтер трейсить пробовали? Вы вкурсе как работает интерфрейм? Точно с такой же бешенной скоростью как и циклы.

После строки
Код AS1/AS2:

counter++;

поставь строку
Код AS1/AS2:

trace(counter);

Будет страшно))))))))))))

samana 09.03.2010 16:47

Не понятно, у вас когда counter равняется 270, то arrow_mc исчезает (_alpha=0), и больше не появляется!!! Следующие твины работают, просто arrow_mc, невидима.

in4core 09.03.2010 17:04

Они не могут работать ибо уже в 1 долю секунды counter = 100000000000)) хз там сколько. ваще флеш плеер слетит от такого скрипта походу.

Если не веришь проверь
Код AS1/AS2:

onEnterFrame = function() { c++; trace(c); } // undo 256 levels.... и т.п


Сорри беру свои слова обратно. Я не прав. маяк работает по скорости фпс . косяк видимо вдругом. хотя и в 30 фпс уже может не успевать схватить твое значение

Universe 09.03.2010 17:13

Спасибо, Samana, ты был прав!
Теперь всё ОК!)

Добавлено через 3 минуты
Кстати по поводу отличий EnterFrame и SetInterval...есть реальная разница в производительности?
Я в принципе не сильно старался с этим таймером...сделал первое, что пришло в голову...но вообще такой способ создания таймеров допустим или лучше юзать что-то другое? Вообще цель данного скрипта создать слайдшоу картинок.

Добавлено через 5 минут
To in4core - не нервничайте, всё будет хорошо!:)

in4core 09.03.2010 20:11

Я не нервничаю) Конечно сет интервал лучше)


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

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