Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > ActionScript 1,2 > перед открытием проигрывается заставка


Автор: nadyui 1.10.2011, 00:12
Здравствуйте. Подскажите пожалуйста, как сделать так чтобы после нажатия кнопки из флэшки не сразу осуществлялся переход на другую страницу (другая будет в html) а проигрывалась в этой флэшке еще одна сцена?

Что нужно добавить к моему коду на кнопочке?
Цитата

on (release) {
    getURL("http://www.newstranisa.ru", "_self");
}


В идеале это должно выглядеть так, что пользователь нажал кнопочку, картинка флэшевская потемнела а потом открылась новая страница. 

Автор: SoWa 1.10.2011, 11:07
Запусти какой-нибудь таймер, например. Или нарисуй мувиклип, который на первом кадре прозрачный, на последнем - темный, все это с переходом, и вставь его проигрывание перед getURL

Автор: nadyui 1.10.2011, 14:23
Cпасибо за совет, клип я создала, но что-то не срабатывает, видимо где-то ошибка у меня:

Цитата

on (release) {
    
    play ("clip1");
    getURL("http://www.newstranisa.ru", "_self");
}

Автор: nadyui 1.10.2011, 22:55
Попробовала еще вариант с таймером, приписала этот скрипт к кнопке, тоже не срабатывает:

Цитата

var timer:Timer = new Timer(1000);//создаем таймер, который будет срабатывать с интервалом 1 сек
var i:Number = 0;//переменная, к значению которой будет прибавляться 1 каждую секунду

on (release) {

nextScene ();
}

timer.start();//запускаем наш таймер
        timer.addEventListener(TimerEvent.TIMER, timerList);//регистрируем для него соушатель событий
        function timerList(e:TimerEvent):void{
            i++;//прибавляем к нашей переменной 1 при каждом срабатывании
            if(i>3){//проверяем, прошло ли 3 сек, с момента пересечения объектов
                timer.stop();//останавливаем таймер
                removeEventListener(Event.ENTER_FRAME, frameList);//удаляем фреймлистенер

                getURL("http://obr1.html", "_self");}


Автор: SoWa 2.10.2011, 10:16
У тебя таймер запускается вне тела on (release) - это первое.
Второе - листенер добавляй до старта таймера.

Автор: nadyui 2.10.2011, 22:18
Попробовала все сделать, поменять последовательность, но теперь ошибки в синтаксисе где-то, а мне как новичку их очень трудно отловить. после on (release) флэш требует поставить закрывающую скобку и таймер получается как бы не включен все равно.....

Цитата


on (release) {



nextScene ();

}

var timer:Timer = new Timer(1000);//создаем таймер, который будет срабатывать с интервалом 1 сек
var i:Number = 0;//переменная, к значению которой будет прибавляться 1 каждую секунду
timer.addEventListener(TimerEvent.TIMER, timerList);//регистрируем для него соушатель событий
timer.start();//запускаем наш таймер
        
        function timerList(e:TimerEvent):void{
            i++;//прибавляем к нашей переменной 1 при каждом срабатывании
            if(i>3){//проверяем, прошло ли 3 сек, с момента пересечения объектов
                timer.stop();//останавливаем таймер
                removeEventListener(Event.ENTER_FRAME, frameList);//удаляем фреймлистенер
}

              getURL("http://obr1.html", "_self");


Автор: nadyui 2.10.2011, 23:11
И кстати спасибо большое SoWa  что помогаете, на другом форуме мне так до сих пор никто и не ответил (

Автор: SoWa 3.10.2011, 07:45
Нене, вот код с комментариями:
Код

on (release) { //Сработало событие, входим в тело

var timer:Timer = new Timer(1000);//создаем таймер, который будет срабатывать с интервалом 1 сек
var i:Number = 0;//переменная, к значению которой будет прибавляться 1 каждую секунду
timer.addEventListener(TimerEvent.TIMER, timerList);//регистрируем для него соушатель событий
timer.start();//запускаем наш таймер
        
function timerList(e:TimerEvent):void{
i++;//прибавляем к нашей переменной 1 при каждом срабатывании
if(i>3)//проверяем, прошло ли 3 сек, с момента пересечения объектов
{//Входим в тело проверки
timer.stop();//останавливаем таймер
removeEventListener(Event.ENTER_FRAME, frameList);//удаляем фреймлистенер
getURL("http://obr1.html", "_self"); //и переходим по нужному урлу
}//Выходим из проверки
}//Выходим из слушателя таймера

nextScene (); //Вот тут я не знаю, что у тебя в этом методе, тут он должен быть или нет - можешь попробовать его перенести в тело проверки

}//Заканчивается тело события


Тот же код на русском языке:
Отработало событие, входим в него, запускаем таймер. Таймер щелкает, когда приходит время - переходим на другой урл.

Автор: nadyui 3.10.2011, 11:43
Спасибо!
 я попыталась воткнуть nextscene но флэшу не понравился мой синтаксис и я попробовала заменить другим таймером,
и теперь все работает, счастье есть, вот какой рабочий скрипт по итогу получился:

Цитата

on (release)
{
    gotoAndPlay("Scene 2",1);

    time = getTimer()
    this.onEnterFrame = function()
    {
  curTime = getTimer()
  dif = curTime - time;

  if(dif > 2000)
  {
  delete this.onEnterFrame;
  getURL("obr1.html", "_self");
  }
    }
}



Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)