Помощь · Поиск · Пользователи · Календарь
Полная версия этой страницы: Переключаем ролики кнопкой
Flash Zone Forum > Macromedia Flash > ActionScript
Dead End
Доброго времени суток!

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

Вот такая вот задача для человека, обладающего почти что нулевыми знаниями 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: Если существуют другие способы воплощения в жизнь моих требований, буду только рад. Главное, что бы на выходе был один единственный файл. Способ с кучей роликов и одним "главным", который эти ролики поочередно запускает мне известен и опробован, но не подходит.
MustLive
Dead End

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

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

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

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