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

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