加载xml出现的问题
导出的swf,如果是用flash player打开就没有问题。但是如果用浏览器打开,就加载不了xml文件,路径方面相对和绝对都试过了,没有什么用
xml:
<?xml version="1.0" encoding="UTF-8"?>
<config>
<video>
<list>
<path>video/1.mp4</path>
</list>
</video>
</config>
as代码:
var myXML:XML;
var XML_URL:String = "config.xml";
var myLoader:URLLoader;
myXML = new XML();
myLoader = new URLLoader(new URLRequest(XML_URL));
myLoader.addEventListener("complete", xmlLoaded);
myLoader.addEventListener("ioError", ioError);
function ioError(e: Event):void {
trace("xml ioError." + e.toString());
_txt.text = "xml error.";
}
function xmlLoaded(event: Event):void {
myXML = XML(myLoader.data);
trace("xml loaded.");
_txt.text = "xml loaded.";
}
上面是player打开的 ,下面是浏览器打开的,浏览器试了很多个都一样结果
https://s1.ax1x.com/2018/12/05/FlJSfJ.jpg
本帖最后由 最后一批aser 于 2018-12-5 16:20 编辑
安全性问题,你只要把这些档案部署到服务器或者自己本地搭建环境,就可以了,已经测试可行!
这个是一个安全限制问题。
SWF默认是有本地和网络两个模式的。
本地模式,可以更多的本地权限,比如加载本地文件等等。
网络模式,则更多的网络访问权限,本地权限则大大限制。
本地文件可以通过添加信任,解决此问题。
TKCB 发表于 2018-12-5 16:11
这个是一个安全限制问题。
SWF默认是有本地和网络两个模式的。
本地模式,可以更多的本地权限,比如加载本 ...
把设置修改成网络模式之后,导出的swf文件用player打开,在未设置信任路径之前打开也是没有内容的。设置之后就好了。
但是用浏览器打开swf还是没有内容,是不是还要改别的地方? 最后一批aser 发表于 2018-12-5 16:19
安全性问题,你只要把这些档案部署到服务器或者自己本地搭建环境,就可以了,已经测试可行!
...
本地怎么搭建环境呢,楼上的方法已经试过了,还是不可以,不知道是哪里出了问题 https://jingyan.baidu.com/article/ed2a5d1f128ff609f6be17fa.html 有的浏览器本地是有问题的,,比如谷歌,我之前写的JS和AS交互就是,本地谷歌是无法通信成功的。
但是实际环境下,上传到网站后,是可以的。 最后一批aser 发表于 2018-12-5 17:34
https://jingyan.baidu.com/article/ed2a5d1f128ff609f6be17fa.html
谢谢,根据两位大佬的方法,可以在网页加载到xml的数据了。
不过在我播放mp4的时候就又不行了,提示NetStream.Play.StreamNotFound,找不到视频文件,但是swf就可以,能帮我看看是什么原因吗
加载视频的代码:
public function LoadVideo()
{
nc = new NetConnection();
nc.connect(null);
videoStream = new NetStream(nc);
}
public function load(_url:String,_mc:MovieClip):void
{
mc = _mc;
videoStream.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler);
videoStream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
videoStream.play(_url);
myvideo = new Video();
myvideo.attachNetStream(videoStream);
mc.parent.addChild(myvideo);
}
private function asyncErrorHandler(event: AsyncErrorEvent): void {
trace("ignore error:" + event);
}
private function netStatusHandler(event:NetStatusEvent):void
{
trace(event.info.code);
}
又大又圆 发表于 2018-12-6 11:28
谢谢,根据两位大佬的方法,可以在网页加载到xml的数据了。
不过在我播放mp4的时候就又不行了,提示NetS ...
myvideo = new Video();
myvideo.attachNetStream(videoStream);
videoStream.play(_url);//放到下面
最后一批aser 发表于 2018-12-6 11:43
myvideo = new Video();
myvideo.attachNetStream(videoStream);
还是不行,我在本地是没有问题的,就是放到服务器上不行了
跟swf放在一起的,swf就可以
nc.connect(null);
会是这个参数的原因吗;
参数command:String — 如果要连接到本地计算机上的视频文件,请将此参数设置为 null。 如果要连接到服务器,则将此参数设置为包含服务器上视频文件的应用程序的 URI。 应使用以下语法(方括号中的项是可选的):
protocol:[//host][:port]/appname
若要连接到 Flash Media Server,请使用 rtmp、rtmpe、rtmps、rtmpt、rtmpte 或 rtmfp 作为协议。如果连接成功,则会返回 code 属性值为 NetConnection.Connect.Success 的 netStatus 事件。 有关为响应 connect() 调用而返回的所有事件代码的列表,请参阅 NetStatusEvent.info 属性。
如果 SWF 文件是从安装服务器的同一台主机中提供的,则可以省略 host 参数。 如果省略 instanceName 参数,Flash Player 将连接到应用程序的默认实例。
... arguments — 要传递给 command 中指定的应用程序的任意类型可选参数。 如果使用 Flash Media Server,会将额外的参数传递给应用程序服务器端代码中的 application.onConnect() 事件处理函数。 您必须在 onConnect() 中定义并处理这些参数
把视频和swf放在一起应该算本地文件把,还是网络上的?
页:
[1]
2