X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Почему ускоряется флешка?, ио временем флешка ускоряется... о_О
Banderas
Banderas
Topic Starter сообщение 29.4.2010, 20:00; Ответить: Banderas
Сообщение #1


Знаю что код и реализация ужасна, но попросили реализовать во флеше до вечера... Баннер вроде сделал, но почему-то с каждой секундой флешка ускоряется!!! В чём проблема? Ускорение заметно гдето через минуту после открытия флешки.

Посмотреть флешку

import fl.transitions.easing.*;
import fl.transitions.Tween;
import flash.utils.Timer;

kiev.alpha = 0;
perv.alpha = 0;
dov.alpha = 0;

var count:int = 0;
var timer:Timer = new Timer(1000);
timer.start();

timer.addEventListener(TimerEvent.TIMER, timerHandler);

function timerHandler(Timer):void
{
count += 1;

if (count == 2) {
kiev.alpha = 1;
var tween:Tween = new Tween(kiev, "alpha", Elastic.easeIn, 0, 1, 1, true);
}

if (count == 5) {
perv.alpha = 1;
var tween2:Tween = new Tween(perv, "x", Strong.easeOut, 325, 100, 1, true);
}
if (count == 7) {
dov.alpha = 1;
var tween3:Tween = new Tween(dov, "x", Strong.easeOut, -100, 120, 1, true);
}
if (count == 10) {
count = 0;
var btween:Tween = new Tween(kiev, "alpha", None.easeNone, 1, 0, 1, true);
var btween2:Tween = new Tween(perv, "x", Regular.easeOut, 100, -110, 1, true);
var btween3:Tween = new Tween(dov, "x", Regular.easeOut, 120, 350, 1, true);
timerHandler(Timer);
}
}
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Banderas
Banderas
Topic Starter сообщение 29.4.2010, 21:00; Ответить: Banderas
Сообщение #2


Проблема решена. Надо заменить
function timerHandler(Timer):void

на
function timerHandler(e:TimerEvent):void


и удалить строку
timerHandler(Timer);
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Banderas
Banderas
Topic Starter сообщение 29.4.2010, 21:31; Ответить: Banderas
Сообщение #3


Ага, всё не так уж и просто! Сделал уже через кейсы для удобства, вроде всё нормально, но от ускорения не избавился :rolleyes:

РАБОТАЮЩИЙ КОД!
import fl.transitions.easing.*; // импортируем библиотеки
import fl.transitions.Tween;
import flash.utils.Timer;

kiev.alpha = 0; // делаем невидимыми слоя, которые должны быть невидимыми :)
perv.alpha = 0;
dov.alpha = 0;

var count:int = 0; // ставим счётчик, которые принимает только целые значения, приравниваем его к нулю
var timer:Timer = new Timer(1000); // ставим таймер, который подаёт сигналы через каждую секунду бесконечное количество раз
timer.start(); // запускаем таймер

timer.addEventListener(TimerEvent.TIMER, timerHandler); // добавляем слушателя к таймеру, то есть что должно происходить с каждой секундой

function timerHandler(e:TimerEvent):void // должна выполнятся функция, которая реагирует на изменения таймера (увеличение секунд)
{
count += 1; // каждый запрос - это одна секунда. Считаем сколько секунд

switch(count) // подбираем секунды... (не знаю как в двух словах описать)
{
    case 2: // если 2 секунды (count = 2), то
        kiev.alpha = 1; // изменяем альфа канал (прозрачность) на 1 (100%), то есть делаем видимым
        var tween:Tween = new Tween(kiev, "alpha", Elastic.easeIn, 0, 1, 1, true); \\ применяем анимацию (Твины это отдельный разговор
        break; // закрываем блок case - break (это как begin - end в Паскале)
    
    case 5: // если 5 секунд (count = 5), то
        perv.alpha = 1; // то самое
        var tween2:Tween = new Tween(perv, "x", Strong.easeOut, 325, 100, 1, true); // то самое
        break; // ...

    case 7: // да, всё правильно поняли
        dov.alpha = 1; // опять
        var tween3:Tween = new Tween(dov, "x", Strong.easeOut, -100, 120, 1, true); // и опять
        break; // но коментс

    case 10: // если 10 сек, то
        var btween:Tween = new Tween(kiev, "alpha", None.easeNone, 1, 0, 1, true); // Делаем обьект с инстансом kiev прозрачным
        var btween2:Tween = new Tween(perv, "x", Regular.easeOut, 100, -110, 1, true); // обьект вылетает из слой
        var btween3:Tween = new Tween(dov, "x", Regular.easeOut, 120, 350, 1, true); // обьект тоже вылетаеи из слоя. Лист чист
        count = 0; // обнуляем счётчик секунд, и пошло поехало....;)
}
}


Что такое?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Banderas
Banderas
Topic Starter сообщение 29.4.2010, 23:17; Ответить: Banderas
Сообщение #4


Всё, решил проблему.... Хотя её и решать не надо было. Сначала я хотел сделать анимацию на временной линейке, а потом перешёл в ActionScript 3.0 с помощью Tween’ов. Но кадры на временной линейке я удалить забыл... Вотето лопух хД Зато сумел усовершенствовать код и выучил switch - case. Думаю этот код можно ещё больше усовершенствовать, так что ждите продолжения.

пс. жаль что получился монолог :rolleyes:
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 29.4.2010, 23:23; Ответить: ZiTosS
Сообщение #5


Banderas,
1) Сначала назначай прослушку события, а затем запускай таймер.
2) Зачем вводить дополнительный свой счетчик, если есть встроенный. Ссылка из обработчика через event.target.currentCount
3) Мне кажется, время за которое у вас срабатывает происходящая анимация больше времени таймера, и со временем начинает вызываться сразу несколько дуйствий, например при count 7 и 10.
Попробуй поставить интервал в 5 секунд, посмотри, будет ли ускоряться.

немного опоздал...


Поблагодарили: (0)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Banderas
Banderas
Topic Starter сообщение 29.4.2010, 23:52; Ответить: Banderas
Сообщение #6


2*ZiTosS*
1) Спасибо, в данном случае это роли не играет, но в другом такая мелочь могла испоганить все труды, как говорят "ложка дёгтя в бочке мёда" :0
2) event.target.currentCount не смогу использовать, потому что эта функция онли рид, я не смог бы обнулить счётчик для перезапуска мувика.
3) Опаздал..))

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыПочему нельзя давать рекламу на бренд?
6 Bilish 1318 12.1.2020, 13:47
автор: BLIK
Открытая тема (нет новых ответов) Почему стоит выбрать именно Berileads?
2 leadkreditrf 1820 27.11.2019, 12:39
автор: -leadkreditrf-
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыПочему слайдер не работает в IE ?
1 GTAlex 1380 2.11.2016, 11:53
автор: BLIK
Горячая тема (нет новых ответов) Почему мой контент называют Королевским?
Продающие тексты и SEO-статьи роскошного качества за 1-2 дня
36 Octavodia 12881 22.10.2015, 18:19
автор: grumdas
Открытая тема (нет новых ответов) "Почему так дешево?" Рерайт/Копирайт.
Качественный контент по низким ценам!
17 Vadim_text 6133 9.10.2015, 15:23
автор: Octavodia


 



RSS Текстовая версия Сейчас: 29.3.2024, 14:47
Дизайн