Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   stop(); на as3 (http://www.flasher.ru/forum/showthread.php?t=149415)

tilweb 24.01.2011 20:10

stop(); на as3
 
Как останавливать слайды?

К .fla у меня присоединяется main.as

но я хочу как раньше, в as2 мог взять написать в строчке stop(); и слайд следующий не проигрывался.

Как тут быть..?

JackFromChaos 24.01.2011 20:17

Ну, как бы stop() есть и в AS3. Вопрос в том, где конкретно вы хотите остановить анимацию? По какому условию?

tilweb 24.01.2011 20:51

у меня есть два кадра
открываем флешку, открывается первый кадр и сразу же останавливается
на нём нет никакой анимации, просто текст
как пользователь прочёл текст, он жмёт на кнопку, которая перенаправляет его на второй кадр
на втором кадре тоже остановка. Там уже пользователь может жать на кнопку и ему будет выдаваться результат некоторых вычислений.

Но суть в том что сейчас если открыть, то эти два кадра маргают и ни где не останавливается.

FlashCoder 24.01.2011 21:08

1 кадр, на нем мувиклип knopka1
Код AS1/AS2:

stop();
knopka1.addEventListener(MouseEvent.CLICK, ckicl1 );
function ckicl1(Event:MouseEvent)
{
        gotoAndPlay("2");
}

2 кадр, на нем мувиклип knopka2
Код AS1/AS2:

stop();
knopka2.addEventListener(MouseEvent.CLICK, clcik2 );
function clcik2(Event:MouseEvent)
{
        gotoAndPlay("1");
}

Все должно работать


______________________________
Web-программирование

JackFromChaos 24.01.2011 21:16

Вместо gotoAndPlay можно gotoAndStop. Тогда stop() достаточно написать в первом кадре...
Только эта... Я, к сожалению, не специалист писать код в кадрах, но по моему так делать нельзя...
Получить, что каждый раз, когда мы будем переходить на кадр 1
knopka1.addEventListener(MouseEvent.CLICK, ckicl1 ); - будет делать очередную подписку... На втором кадре то же самое... В результате через какое то время будет страшное... Хотя внешне наверное все будет работать..
2tilweb: Не стоит писать код в кадрах... Почитайте того же Мука что ли...

Hidest 24.01.2011 21:22

В конструкторе пишем super.stop();

А в обработчиках кнопок вперед|назад соответственно super.nextFrame(); и super.prevFrame();

И будет все равно сколько там кадров, каждый раз будете преходить на следующий или предыдущий. Причем можно не боятся, что выйдете за диапазон 1..totalFrames.

tilweb 24.01.2011 21:33

1180: Call to a possibly undefined method gotoAndStop.
Warning: 1060: Migration issue: The method stop is no longer supported. For more information, see MovieClip.stop()..



пробую написать MovieClip.stop();, тоже не работает, всёравно не останавливается на кадре

Добавлено через 8 минут
super.stop(); тоже не работает :(

Добавлено через 17 минут
а создал просто файл с двумя кадрами, написал в первом stop();
сохранил и работает

а в моей флешке нет.. не понимаю почему..

может из-за того что прикрепляется main.as? может он игнорирует при этом всё что пишется в action script и делает только то что в main.as ?

cleptoman 24.01.2011 23:08

ваш документ класс должен быть наследником MovieClip

samana 24.01.2011 23:51

Цитата:

Сообщение от tilweb (Сообщение 967538)
может из-за того что прикрепляется main.as? может он игнорирует при этом всё что пишется в action script и делает только то что в main.as ?

Очень не хорошо писать код в кадре, когда ещё и есть Document Class.

Добавлено через 1 минуту
Цитата:

Сообщение от FlashCoder (Сообщение 967531)
1 кадр, на нем мувиклип knopka1
Код AS1/AS2:

stop();
knopka1.addEventListener(MouseEvent.CLICK, ckicl1 );
function ckicl1(Event:MouseEvent)
{
        gotoAndPlay("2");
}


Только число нужно без кавычек )

Добавлено через 8 минут
Цитата:

Сообщение от JackFromChaos (Сообщение 967535)
Получить, что каждый раз, когда мы будем переходить на кадр 1
knopka1.addEventListener(MouseEvent.CLICK, ckicl1 ); - будет делать очередную подписку... На втором кадре то же самое... В результате через какое то время будет страшное...

Новой лишней подписки не произойдёт.

tilweb 25.01.2011 00:10

а как записать в файл main.as вот эти коды, так чтобы он понимал для какого кадра код?

пробовал просто запихать в начале stop(); так он не хочет..

у меня код в нём начинает вот с такого:

Код AS3:

package {
        import flash.events.*;
        import flash.display.*;
        import flash.net.*;
        import flash.text.TextField;
 
        public class Main extends Sprite {
                public function Main():void {
                        btn.addEventListener(MouseEvent.CLICK,btnClick);
                }



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

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