#flash #actionscript-3 #loader
#вспышка #actionscript-3 #загрузчик
Вопрос:
Есть ли простой способ заменить видеоролик другим динамически загружаемым видеороликом?
У меня есть и EventListener onCLICK, при выборе которого запускается FLVPlayback, но я также хотел бы переключиться на другую кнопку воспроизведения видеоролика сейчас / Now Playing.
Просто немного фона. Я зацикливаю и загружаю JPG-файлы кнопки воспроизведения в один видеоклип и присваиваю добавочный номер в качестве имени видеоклипу кнопки воспроизведения. При нажатии на эту кнопку воспроизведения воспроизводится фильм, но теперь я также хотел бы переключить изображение кнопки воспроизведения на изображение воспроизведения сейчас.
//ADD EVENT LISTENER TO ALL MY THUMBS_BUTTON
thumbs_button.addEventListener (MouseEvent.CLICK, playVideoThumb);
for (var i:Number = 0; i < my_total; i ) {
var playButton_url = "play_now.png";
var playButton_loader = new Loader();
playButton_loader.name = i;
playButton_loader.load (new URLRequest(root_path playButton_url));
playButton_loader.contentLoaderInfo.addEventListener (Event.COMPLETE, playButtonLoaded);
playButton_loader.y = (115 * i) (135 * i) 138;
//PUT NEW LOADED IMAGE INTO THUMBS_BUTTON
function playButtonLoaded (e:Event):void {
var my_playButton:Loader = Loader(e.target.loader);
thumbs_button.addChild (my_playButton);
}
//THIS IS WHERE I NEED TO REMOVE THE PLAY NOW AND PUT IN THE NOW PLAYING BUTTON
function playVideoThumb (e:MouseEvent):void {
var video_url = root_path my_videos[e.target.name].@URL;
my_player.source = video_url;
var blank_butt:Number = thumbs_button.getChildByName(e.target.name).x;
thumbs_button.removeChild(thumbs_button.getChildByName(e.target.name));
}
Ответ №1:
Глядя на ваш код, я предполагаю, что вы, вероятно, хотите функциональность, подобную radiobutton. Есть несколько способов сделать это. Одним из способов было бы удаление и добавление дочерних элементов или, в приведенном ниже случае, просто использование свойства visible:
// will contain hidden button
var hidden_button: DisplayObject = null;
// playing now button
var playingNow_button: Loader;
//ADD EVENT LISTENER TO ALL MY THUMBS_BUTTON
thumbs_button.addEventListener (MouseEvent.CLICK, playVideoThumb);
for (var i:Number = 0; i < my_total; i ) {
var playButton_url: String = "play_now.png";
var playButton_loader: Loader = new Loader();
playButton_loader.name = i;
playButton_loader.load (new URLRequest(root_path playButton_url));
playButton_loader.contentLoaderInfo.addEventListener (Event.COMPLETE, playButtonLoaded);
playButton_loader.y = (115 * i) (135 * i) 138;
}
// load playingNow graphic
playingNow_button = new Loader();
playingNow_button.load(new URLRequest(root_path 'playing_now.png'));
playingNow_button.contentLoaderInfo.addEventListener (Event.COMPLETE, playingNowLoaded);
//PUT NEW LOADED IMAGE INTO THUMBS_BUTTON
function playButtonLoaded (e:Event):void {
var my_playButton:Loader = Loader(e.target.loader);
thumbs_button.addChild (my_playButton);
}
//ADD PLAYING_NOW BUT HIDE
function playingNowLoaded (e:Event):void {
playingNow_button.visible = false;
thumbs_button.addChild (playingNow_button);
}
//THIS IS WHERE I NEED TO REMOVE THE PLAY NOW AND PUT IN THE NOW PLAYING BUTTON
function playVideoThumb (e:MouseEvent):void {
// exit if user clicked playing Now button
if (e.target == playingNow_button) return;
// also exit if user clicked on something that is not a loader
if (!(e.target is Loader)) return;
// show hidden button (if any)
if (hidden_button != null) hidden_button.visible = true;
// assign current button to hidden_button
hidden_button = DisplayObject(e.target);
// copy location, scale and rotation
playingNow_button.transform.matrix = hidden_button.transform.matrix;
// show playingNow and hide button
playingNow_button.visible = true;
hidden_button.visible = false;
// play video
var video_url = root_path my_videos[e.target.name].@URL;
my_player.source = video_url;
}
Если вам не нужна какая-либо обработка загруженных кнопок, вы можете сразу добавить объекты загрузчика в thumbs_button. Вам не обязательно делать это в ПОЛНОМ обработчике.
Комментарии:
1. 1 Спасибо за информацию, которую я сейчас тестирую. Но я никогда не думал о том, чтобы просто загрузить оба и использовать настройки видимости.