IPB

Здравствуйте, гость ( Вход | Регистрация )

> Переключаем ролики кнопкой
Dead End
сообщение 7.01.2013 - 01:30
Сообщение #1


Новичок
*

Группа: Новичок
Сообщений: 1
Регистрация: 7.01.2013
Из: DE
Пользователь №: 11197



Доброго времени суток!

Вот уже второй день меня в ступор вводит одна проблема: Требуется метод, позволяющий переключать кнопкой ролики, лежащие в библиотеке. А точнее - нужно, чтобы при окончании проигрывания первого ролика воспроизведение останавливалось и появлялась кнопка, при нажатии на которую начал проигрываться второй ролик, при окончании проигрывания которого опять появлялась кнопка, которая запускала бы третий итд. При этом желательно, что бы кнопка в конце последнего ролика возвращала бы к первому, и все ролики, помимо первого, имели бы еще кнопку для проигрывания предыдущего ролика. Еще было бы очень неплохо, что бы каждая кнопка называлась по разному, но это более чем опционально.

Вот такая вот задача для человека, обладающего почти что нулевыми знаниями AS 3, занимавшегося до этого только непосредственно анимацией, и то бездарно rolleyes.gif Поэтому уповаю на знающих людей и их помощь. Я не хочу и ни коем образом не пытаюсь наглеть, но если бы получить исходник, это было бы просто шикарно. Ибо лучше бэк-инжиниринга еще ничего не придумали. Пользуюсь Adobe Flash CS5.

PS: Мои двухдневные поиски на форумах и в интернетах дали мне только вот этот код, подсказанный одним добрым человеком:

CODE
import flash.events.Event;
import fl.controls.Button;
import flash.events.MouseEvent;
import flash.display.MovieClip;

var next_btn:Button
var currentClip:MovieClip
var linkIndex:int = 0

const CLIPS:Array = [new Clip_1(), new Clip_2()]

Start()

function Start():void {
next_btn.addEventListener( MouseEvent.CLICK, Click )
this.addEventListener( Event.ENTER_FRAME, Update )
LoadNextClip()
}

function Click( e:MouseEvent ):void {
LoadNextClip()
}

function SetNextLinkIndex():void {
linkIndex++
if ( linkIndex == CLIPS.length ) {
linkIndex = 0
}
}

function LoadNextClip():void {
next_btn.visible = false
if ( currentClip != null ) {
this.removeChild( currentClip )
}
currentClip = CLIPS[linkIndex]
currentClip.gotoAndPlay( 1 )
this.addChildAt( currentClip, 0 )
SetNextLinkIndex()
}

function Update( e:Event ):void {
if ( currentClip != null ) {
if ( currentClip.totalFrames == currentClip.currentFrame ) {
currentClip.stop()
next_btn.visible = true
}
}
}


Этот же хороший человек дал мне исходник: Флешка из одного фрейма с кнопкой, с висящим на этом фрейме вышеозначенным кодом, и двумя swf роликами в библиотеке. Само по себе все работало, ролики переключались кнопкой, которая появлялась в конце каждого ролика. Проблемы начались, когда я попытался подогнать все это дело под себя. Во первых я не смог импортировать в библиотеку свои уже готовые ролики (импортировалась какая то ерунда из двух пустых фреймов). Отчаявшись, я попытался тупо скопировать кадры моих роликов в ролики исходника. Работать то заработало, но не смотря на то, что я изменил размер документа под размер своих роликов, ролики-исходники остались старого размера, показывая только часть того, что нужно.

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

PS: Если существуют другие способы воплощения в жизнь моих требований, буду только рад. Главное, что бы на выходе был один единственный файл. Способ с кучей роликов и одним "главным", который эти ролики поочередно запускает мне известен и опробован, но не подходит.

Сообщение отредактировал Dead End - 7.01.2013 - 01:34
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
Открыть новую тему
Ответов (1 - 1)
MustLive
сообщение 4.02.2013 - 01:52
Сообщение #2


Ветеран конференции
*****

Группа: Flash Zone Team
Сообщений: 4832
Регистрация: 10.03.2005
Из: Киев
Пользователь №: 5



Dead End

Тему цикличного воспроизведения мы уже рассматривали (работа с плейлистом видео, аудио и других файлов). Как с использованием кнопок для перехода между роликами, так и без них. Примеры кода приводились для предыдущих версий AS, поэтому если тебе нужно на AS3, то придётся переделывать под AS3, а если ты можешь написать код на любой версии AS (для твоего флеш проекта это не важно), то сможешь использовать тот код. Но во всех этих примерах речь шла о воспроизведении внешних файлов, а не клипов из Библиотеки.

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

Цитата
Пользуюсь Adobe Flash CS5.

Раз у тебя уже есть исходник, но с ним возникают проблемы, когда ты пытаешься изменить его под свои задачи, то ты можешь поступить следующим образом. Найти другой исходник в Сети (который будет нормально работать после твоих изменений), или же с данным исходником обратиться к людям, у которых есть Flash CS5 или выше, чтобы они изменили исходник под твои нужды (с этой версией Flash редактора я не смогу тебе помочь). Или нанять людей за деньги, чтобы они сделали тебе нужную флешку (сделали новый исходник или переделали текущий).


--------------------
Best wishes & regards,
MustLive
Администратор сайта
http://mlfun.org.ua
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия Сейчас: 22.05.2013 - 03:37