Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 FlvPlayback与XML和For循环_Xml_Flash_Actionscript 3_For Loop_Flvplayback - Fatal编程技术网

Actionscript 3 FlvPlayback与XML和For循环

Actionscript 3 FlvPlayback与XML和For循环,xml,flash,actionscript-3,for-loop,flvplayback,Xml,Flash,Actionscript 3,For Loop,Flvplayback,我有一个应用程序,我希望有尽可能多的FLV播放器(每个播放器只播放一个视频),由XML控制。我控制一些变量(肤色、玩家x和y等)。 我的代码正在工作,但有一些问题,所以我需要帮助来优化我的代码。 其中一个问题是在全屏视频上,我把一个视频放在全屏上,另一个转到全屏…还有皮肤alpha的其他问题,自动播放也会发生 我的AS3 import fl.video.*; import flash.events.ProgressEvent; import fl.controls.ProgressBar; im

我有一个应用程序,我希望有尽可能多的FLV播放器(每个播放器只播放一个视频),由XML控制。我控制一些变量(肤色、玩家x和y等)。 我的代码正在工作,但有一些问题,所以我需要帮助来优化我的代码。 其中一个问题是在全屏视频上,我把一个视频放在全屏上,另一个转到全屏…还有皮肤alpha的其他问题,自动播放也会发生

我的AS3

import fl.video.*;
import flash.events.ProgressEvent;
import fl.controls.ProgressBar;
import fl.controls.ProgressBarMode;

var my_videos:XMLList;
var my_total:Number;
var my_player:FLVPlayback;
var player_skin_color:Number;
var player_skin_alpha:Number;
var auto_play:Boolean;

var videoArray:Array = new Array();

var myXMLLoader:URLLoader = new URLLoader();
myXMLLoader.load(new URLRequest("test.xml"));
myXMLLoader.addEventListener(Event.COMPLETE, processXML);

function processXML(e:Event):void {

 var myXML:XML = new XML(e.target.data);

 my_videos = myXML.VIDEO;
 my_total = my_videos.length();

makePlayer();
positionPlayer();
}


function makePlayer():void {

 for (var i:int = 0; i < my_total; i++) {

 my_player = new FLVPlayback();
 my_player.skin = "SkinOverPlayFullscreen.swf";
 my_player.skinBackgroundColor = player_skin_color;
 my_player.skinBackgroundAlpha = player_skin_alpha;
 my_player.autoPlay = auto_play;

 player_skin_color = my_videos[i]. @ PLAYER_SKIN_COLOR;
 player_skin_alpha = my_videos[i]. @ PLAYER_SKIN_ALPHA;
 auto_play = my_videos[i]. @ VIDEO_AUTOPLAY;

 addChild(my_player);
 videoArray.push(my_player);
 my_player.source = my_videos[i]. @ URL;
 }
}

function positionPlayer():void {

 for (var i:int = 0; i < my_total; i++)
{
 videoArray[i].x = my_videos[i] . @PLAYER_X;
 videoArray[i].y = my_videos[i] . @PLAYER_Y;
 videoArray[i].width = my_videos[i] . @PLAYER_WIDTH;
 videoArray[i].height = my_videos[i] . @PLAYER_HEIGHT;

 }
}

每次添加FLVPlayback实例时,都会在my_player上创建它

而不是

my_player = new FLVPlayback();
试一试

它应该解决其他问题

Rob

导入外语视频。*;
导入flash.events.ProgressEvent;
导入fl.controls.ProgressBar;
导入fl.controls.ProgressBarMode;
var my_视频:XMLList;
var my_总计:数量;
var player_skin_color:编号;
var player_skin_alpha:数字;
var自动播放:布尔;
var videoArray:Array=新数组();
var myXMLLoader:URLLoader=新的URLLoader();
load(新的URLRequest(“test.xml”);
myXMLLoader.addEventListener(Event.COMPLETE,processXML);
函数processXML(e:Event):void{
var myXML:XML=newxml(e.target.data);
my_videos=myXML.VIDEO;
my_total=my_videos.length();
makePlayer();
positionPlayer();
}
函数makePlayer():void{
对于(变量i:int=0;i
您好,谢谢您的回答,有一个问题,您需要我删除视频阵列的方法吗?我用您的代码做了一些尝试,但我也遇到了同样的问题。我没有错误,但是视频不清晰。嗨,对不起,我的答案是胡说八道。请看我的新的。基本上你做得很好,但你在循环中超越了我的球员。我没有使用类变量,而是在循环中添加了一个局部变量,然后将该实例添加到数组中。此外,皮肤属性是在您将其添加到玩家实例后声明的。谢谢,您的回答完全正确!现在所有的皮肤和姿势都很好。全屏显示没有,但很奇怪,如果我有四个xml视频,如果我点击任何全屏按钮,最后一个xml视频将进入全屏显示。在第二次我点击视频全屏时,所有的视频都会崩溃并改变位置。我认为这是一个全屏冲突的flash问题。如果你在处理DisplayState更改的地方发布代码,我们可以看到它有什么问题。我更新了我的问题,我使用greensock在舞台上调整布局,代码可以很好地处理一个视频,但更多。。。
import flash.display.StageDisplayState;
import flash.display.StageAlign;
import flash.display.StageScaleMode;

stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;

function goFullScreen():void
{
if (stage.displayState == StageDisplayState.NORMAL) {
stage.displayState=StageDisplayState.FULL_SCREEN;
} else {
stage.displayState=StageDisplayState.NORMAL;
}
}


//GREENSOCK LIQUID LAYOUT

var ls:LiquidStage = new LiquidStage(this.stage,900,600,900,600);

ls.attach(video_container_mc, ls.CENTER, false, true, 0);
my_player = new FLVPlayback();
//Create an array for the players
var my_players:Array = new Array();

//Add the player instances to the array
my_players.push (new FLVPlayback());
import fl.video.*;
import flash.events.ProgressEvent;
import fl.controls.ProgressBar;
import fl.controls.ProgressBarMode;

var my_videos:XMLList;
var my_total:Number;
var player_skin_color:Number;
var player_skin_alpha:Number;
var auto_play:Boolean;

var videoArray:Array = new Array();

var myXMLLoader:URLLoader = new URLLoader();
myXMLLoader.load(new URLRequest("test.xml"));
myXMLLoader.addEventListener(Event.COMPLETE, processXML);

function processXML(e:Event):void {

 var myXML:XML = new XML(e.target.data);

 my_videos = myXML.VIDEO;
 my_total = my_videos.length();

makePlayer();
positionPlayer();
}


function makePlayer():void {

 for (var i:int = 0; i < my_total; i++) {

 var my_player:FLVPlayback = new FLVPlayback();
 my_player.name = "FLVplayer_" + i;
 my_player.skin = "SkinOverPlayFullscreen.swf";

 player_skin_color = my_videos[i].@PLAYER_SKIN_COLOR;
 player_skin_alpha = my_videos[i].@PLAYER_SKIN_ALPHA;
 auto_play = my_videos[i].@VIDEO_AUTOPLAY;

 my_player.skinBackgroundColor = player_skin_color;
 my_player.skinBackgroundAlpha = player_skin_alpha;
 my_player.autoPlay = auto_play;

 my_player.source = my_videos[i].@URL;
 videoArray.push(my_player);

 addChild(my_player);
 }
}

function positionPlayer():void {

 for (var i:int = 0; i < my_total; i++)
{
 videoArray[i].x = my_videos[i].@PLAYER_X;
 videoArray[i].y = my_videos[i].@PLAYER_Y;
 videoArray[i].width = my_videos[i].@PLAYER_WIDTH;
 videoArray[i].height = my_videos[i].@PLAYER_HEIGHT;

 }
}