Форум 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)
-   -   Просмотр с исключением отмеченных кадров (http://www.flasher.ru/forum/showthread.php?t=143750)

intensiv 24.08.2010 22:17

Просмотр с исключением отмеченных кадров
 
Просьба подсказать простой способ создания программы во FlashMX, в которой пользовтель мог бы отмечать кнопкой мыши некоторые кадры, чтобы потом при повторном воспроизведении по кругу эти кадры автоматически бы исключались из показа.

FriOne 25.08.2010 00:24

Конкретней спроси... простой способ - это знать AS

intensiv 25.08.2010 00:31

Конечно все это мыслится с помощью программы на AS, который работает во Flash MX. Пока не получается метить кадры и исключать их из повторного просмотра

FriOne 25.08.2010 00:43

Вижу вы совсем мало понимаете в программировании.. а может и кажется)
Напишу в дву словах что вам надо..
Первое, пишите все в одном кадре.
Второе, научитесь загружать картинки.
И третье, события.

mooncar 25.08.2010 00:48

Какого вы хотите совета?
Неизвестно, как у вас физически пользователи будут отмечать кадры (останавливать воспроизведение или ловить кликами на лету) когда именно ролик будет проигрываться повторно.
Слишком расплывчато вопрос задаете.

При такой общей постановке вопроса могу такой вариант подсказать:
Например, создайте массив и заносите туда при клике мыши значения _currentframe по мере первого воспроизведения. Это будут ненужные. Типа:
Код AS1/AS2:

var unnecess:Array = new Array(); //массив номеров ненужных кадров
this.onMouseDown = function  ()
{
        unnecess.push(_currentframe);//добавляем номера ненужных по мере первого воспроизведения
};

При повторном воспроизведении должна работать функция, которая бы управляла роликом:
Код AS1/AS2:

this.stop();
var arrPosition:Number = 0//текущее положение проверки массива ненужных кадров
this.onEnterFrame = function  ()
{       
        if (_currentframe + 1 != unnecess[arrPosition])//если следующий за текущим кадром не является следующим игнорируемым
        {
                nextFrame(); //идем на след. кадр
        }
        else
        {
                gotoAndStop(_currentframe + 2); //если следующий за текущим является следующим игнорируемым, то перескакиваем через него
                arrPosition++; //и увеличиваем на 1 позицию проверки по массиву ненужных
        }
}

То есть не давать ролику проигрываться самостоятельно, а управлять переходами по кадрам с помощью функции.

Разумеется, это не готовый код, а в большей степени базвая логика. Работать просто так это не будет. Все остальное дописывается по обстоятельствам. Они вам виднее, поэтому можете взять за основу мой совет. Ключевой момент здесь - это не отбор ненужных, а сама функция управления воспроизведением.

Более "простого" способа в голову не приходит.

FriOne 25.08.2010 00:53

Немного погорячился, у меня почему-то на кадры аллергия..

intensiv 25.08.2010 14:39

Спасибо! Идея понятна. И понятно, что недостаточно подробно изложил свою задачу. А она сводится к тому, что ученик должен листать страницы электронного учебника, при этом пользоваться кнопкой "Знаю", если учебное содержание ему понятно и кнопкой "Не знаю", если содержание еще не усвоено. При нажатии первой кнопки должны отмечаться понятые кадры, чтобы потом при повторном воспроизведении фильма (при переходе с последего кадра на первый) их исключить из предъявления, а предъявлялись только непонятые учебные материалы. При нажатии второй кнопки осуществляется просто переход к очередной странице. При последующих воспроизведениях всего учебника количество непонятых страниц должно уменьшаться и в конечном итоге сведется к нулю - тогда весь учебник будет усвоен.
Может быть эта более подробная информация позволит довести приведенный уже ранее код до уровня работающей программы. У меня пока это не получается. Заранее благодарен.

mooncar 25.08.2010 15:10

Нет, писать за вас ваши программы тут не принято. Разобраться с проблемой, помочь советом, накидать небольшой (или большой, если тема интересна) пример - да.
Обратитесь в раздел Вакансии с этим ТЗ. Или начните писать - хотя бы для начала саму листалку страниц.

rainbowrussia 25.08.2010 15:26

SharedObject вам в помощь для запоминания пропускаемых страниц.

intensiv 25.08.2010 18:41

Просьба помочь разобраться. Приведенный ранее код не записывает номера отмеченных кадров и соответственно дальше не работает:

Код AS1/AS2:

var unnecess:Array = new Array(); //массив номеров ненужных кадров
this.onMouseDown = function  ()
{
        unnecess.push(_currentframe);//добавляем номера ненужных по мере первого воспроизведения
};
trace(_currentframe);
 
this.stop();
var arrPosition:Number = 0//текущее положение проверки массива ненужных кадров
this.onEnterFrame = function  ()
{       
        if (_currentframe + 1 != unnecess[arrPosition])//если следующий за текущим кадром не является следующим игнорируемым
        {
                nextFrame(); //идем на след. кадр
        }
        else
        {
                gotoAndStop(_currentframe + 2); //если следующий за текущим является следующим игнорируемым, то перескакиваем через него
                arrPosition++; //и увеличиваем на 1 позицию проверки по массиву ненужных
        }
}//То есть не давать ролику проигрываться самостоятельно



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

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