Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Общие вопросы о Flash (не затрагивающие ActionScript) (http://www.flasher.ru/forum/forumdisplay.php?f=60)
-   -   breakpoint или точка остановки (http://www.flasher.ru/forum/showthread.php?t=209720)

Pegacy 12.12.2014 14:02

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

Sergey_A 12.12.2014 15:55

Не совсем понял проблему. Возможно, вам поможет команда gotoAndPlay(номер кадра);
Прописывать, если что, в первом кадре в "Действиях" (кнопка F9). У вас в клипе код вообще есть какой-нибудь?

Pegacy 13.12.2014 01:21

Код никакой я не писал. Например есть клип длинной 5 минут, кода в нём никакого нет, просто анимация. Мне нужно чтобы проигрывался только промежуток между 2 минутой и 30 секундой и 3 минутой и 10 секундой клипа.

http://pix.academ.org/img/2014/12/13...99057ef54a.png

Иначе приходится в процессе рисования новых кадров просматривать весь клип целиком снова и снова.

nubideus 13.12.2014 02:15

Pegacy, у тебя же там покадрово все, просто бери и вырезай.

открой окно "propertyes"(не знаю как там на английском окошко называлось, "свойства" короче), выбери кадр где должно стартовать, в окне с свойствами (в самом верху этого окна поле ввода есть) дай имя кадру например "start".
далее найди окно action, выбери первый кадр, напиши там gotoAndPlay("start")
потом выбери кадр где анимация заканчивается, в action пропиши тоже самое(gotoAndPlay("start"))

если не хочешь обзывать кадры, пиши в окошке action просто gotoAndPlay(номер кадра) например gotoAndPlay(10).

samana 13.12.2014 02:34

Вложений: 1
Есть и такая шутка:
Вложение 31302
Но если у вас её нет, тогда используйте этот код. Просто временно вставьте его в первый кадр всей анимации и измените на нужные вам значения, а потом если что удалите.
Чтобы вставить код в кадр, выделите кадр и нажмите F9
Код AS3:

loop(24,46); // <---  только здесь пропишите с какого по какой кадр играть
 
//тут ничего менять не нужно
function loop(startFrame:Number, endFrame:Number)
{
        gotoAndPlay(startFrame);
        addFrameScript(endFrame,function(){gotoAndPlay(startFrame)});
}


Pegacy 13.12.2014 15:02

samana
Отчасти помогло, начинается с нужного кадра т.е. 24го, но почему то не заканчивается на 46м, а идёт в самый конец клипа.
Кнопки как на вашем скриншоте увы нету, это из какой версии флеша?

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

samana 13.12.2014 15:21

Странно, вчера вроде проверял и код работал.. А какая у вас версия actionscript в проекте?
У меня сейчас Flash CS6, но кажется кнопка loop появилась уже с CS5.

Pegacy 13.12.2014 15:48

CS4 Pro версия флеша, AS в окошке 1.0 и 2.0 стоит, и не переключается ни на что другое.
Видимо опять придётся качать последнюю версию.

samana 13.12.2014 16:00

А вы ведь при тестировании анимации запускаете плеер (ctrl+enter), а не просто enter? Код будет работать только при запуске плеера.

Pegacy 13.12.2014 16:10

Цитата:

Сообщение от samana (Сообщение 1176271)
А вы ведь при тестировании анимации запускаете плеер (ctrl+enter), а не просто enter? Код будет работать только при запуске плеера.

Test movie в swf (ctrl+enter). В режиме редактора я не могу смотреть как проигрывается анимация в символах.

samana 13.12.2014 16:21

Кстати, вы правы, код почему-то не работал...
Вот этот точно должен (AS2)
Код AS1/AS2:

var startFrame:Number=5
var endFrame:Number=10;
 
gotoAndPlay(startFrame);
this.onEnterFrame=function(){
        if(_currentFrame==endFrame+1)
        {
                gotoAndPlay(startFrame)
        }
}


Pegacy 13.12.2014 16:24

Скачал CS6. Ваш старый код исполняется точно так же. А та loop кнопка работает увы только в режиме редактора :(.
Ваш новый код работает как надо! Спасибо!

samana 13.12.2014 16:27

Ура :)

Pegacy 15.12.2014 17:11

нашел баг - на дальних отрезках (дальше 500 кадра) ролик проигрывается 1 раз с самого сначала, а потом уже работает как надо

samana 15.12.2014 18:39

Может вы поместили код не в первый кадр?

Pegacy 15.12.2014 19:17

в первый
http://pix.academ.org/img/2014/12/15...bee0306cb0.png

samana 15.12.2014 19:36

Хм...тогда осмелюсь предположить что это не баг, а просто флешка не успевает загрузиться, то-есть когда срабатывает код первого кадра, то 500-ый кадр ещё не загружен и идёт сбой.
p.s. Как бы странно не звучало, но флешка загружается по кадрам.

Можно попробовать запустить код после одной секунды, по-идее должно сработать
Код AS1/AS2:

stop();
 
var startFrame:Number = 5;
var endFrame:Number = 10;
 
setTimeout(init,1000); //1000мс = 1 секунда
 
function init()
{
        gotoAndPlay(startFrame);
        this.onEnterFrame = function()
        {
                if(_currentFrame==endFrame+1);
                {
                        gotoAndPlay(startFrame);
                }
        };
}


Pegacy 15.12.2014 20:34

samana
Помогло, правда первый кадр срабатывает теперь каждый раз. Можно сделать чтобы он проигрывался только 1 раз в начале, или же оно каждый раз подгружает?

samana 15.12.2014 21:35

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


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

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