11RIA 闪客社区 - 专注Flash技术,做全球最大的Flash AS AIR及周边技术开发者社区

搜索
查看: 49|回复: 11

[AS3] 加载xml出现的问题

[复制链接]

签到天数: 20 天

[LV.2]闪客II

发表于 7 天前 | 显示全部楼层 |阅读模式
100银子
导出的swf,如果是用flash player打开就没有问题。
但是如果用浏览器打开,就加载不了xml文件,路径方面相对和绝对都试过了,没有什么用

xml:
[XML] 纯文本查看 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<config>
	<video>
		<list>
			<path>video/1.mp4</path>
		</list>
	</video>
</config>

as代码:
[Actionscript3] 纯文本查看 复制代码
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打开的 ,下面是浏览器打开的,浏览器试了很多个都一样结果




最佳答案

查看完整内容

安全性问题,你只要把这些档案部署到服务器或者自己本地搭建环境,就可以了,已经测试可行!

签到天数: 380 天

[LV.7]人阶闪灵

发表于 7 天前 | 显示全部楼层
本帖最后由 最后一批aser 于 2018-12-5 16:20 编辑

QQ截图20181205161900.jpg
安全性问题,你只要把这些档案部署到服务器或者自己本地搭建环境,就可以了,已经测试可行!

点评

本地怎么搭建环境呢,楼上的方法已经试过了,还是不可以,不知道是哪里出了问题  详情 回复 发表于 7 天前
回复

使用道具 举报

签到天数: 335 天

[LV.6]高级闪侠

发表于 7 天前 | 显示全部楼层
这个是一个安全限制问题。
SWF默认是有本地和网络两个模式的。
本地模式,可以更多的本地权限,比如加载本地文件等等。
网络模式,则更多的网络访问权限,本地权限则大大限制。
QQ截图20181205160638.png

本地文件可以通过添加信任,解决此问题。
QQ截图20181205161033.png

点评

把设置修改成网络模式之后,导出的swf文件用player打开,在未设置信任路径之前打开也是没有内容的。设置之后就好了。 但是用浏览器打开swf还是没有内容,是不是还要改别的地方?  详情 回复 发表于 7 天前

评分

参与人数 1银子 +50 收起 理由
又大又圆 + 50 谢谢谢谢

查看全部评分

回复

使用道具 举报

签到天数: 20 天

[LV.2]闪客II

 楼主| 发表于 7 天前 | 显示全部楼层
TKCB 发表于 2018-12-5 16:11
这个是一个安全限制问题。
SWF默认是有本地和网络两个模式的。
本地模式,可以更多的本地权限,比如加载本 ...

把设置修改成网络模式之后,导出的swf文件用player打开,在未设置信任路径之前打开也是没有内容的。设置之后就好了。
但是用浏览器打开swf还是没有内容,是不是还要改别的地方?
回复

使用道具 举报

签到天数: 20 天

[LV.2]闪客II

 楼主| 发表于 7 天前 | 显示全部楼层
最后一批aser 发表于 2018-12-5 16:19
安全性问题,你只要把这些档案部署到服务器或者自己本地搭建环境,就可以了,已经测试可行!
...

本地怎么搭建环境呢,楼上的方法已经试过了,还是不可以,不知道是哪里出了问题
回复

使用道具 举报

签到天数: 380 天

[LV.7]人阶闪灵

发表于 7 天前 | 显示全部楼层

点评

谢谢,根据两位大佬的方法,可以在网页加载到xml的数据了。 不过在我播放mp4的时候就又不行了,提示NetStream.Play.StreamNotFound,找不到视频文件,但是swf就可以,能帮我看看是什么原因吗 加载视频的代码: [mw_  详情 回复 发表于 6 天前
回复

使用道具 举报

签到天数: 335 天

[LV.6]高级闪侠

发表于 7 天前 | 显示全部楼层
有的浏览器本地是有问题的,,比如谷歌,我之前写的JS和AS交互就是,本地谷歌是无法通信成功的。
但是实际环境下,上传到网站后,是可以的。
回复

使用道具 举报

签到天数: 20 天

[LV.2]闪客II

 楼主| 发表于 6 天前 | 显示全部楼层
最后一批aser 发表于 2018-12-5 17:34
https://jingyan.baidu.com/article/ed2a5d1f128ff609f6be17fa.html

谢谢,根据两位大佬的方法,可以在网页加载到xml的数据了。

不过在我播放mp4的时候就又不行了,提示NetStream.Play.StreamNotFound,找不到视频文件,但是swf就可以,能帮我看看是什么原因吗
加载视频的代码:
[Actionscript3] 纯文本查看 复制代码
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);
}



回复

使用道具 举报

签到天数: 380 天

[LV.7]人阶闪灵

发表于 6 天前 | 显示全部楼层
又大又圆 发表于 2018-12-6 11:28
谢谢,根据两位大佬的方法,可以在网页加载到xml的数据了。

不过在我播放mp4的时候就又不行了,提示NetS ...

[Actionscript3] 纯文本查看 复制代码
 
myvideo = new Video();
 myvideo.attachNetStream(videoStream);
 videoStream.play(_url);//放到下面


点评

还是不行,我在本地是没有问题的,就是放到服务器上不行了 跟swf放在一起的,swf就可以 nc.connect(null); 会是这个参数的原因吗; 把视频和swf放在一起应该算本地文件把,还是网络上的?  详情 回复 发表于 6 天前
回复

使用道具 举报

签到天数: 20 天

[LV.2]闪客II

 楼主| 发表于 6 天前 | 显示全部楼层
最后一批aser 发表于 2018-12-6 11:43
[mw_shl_code=actionscript3,true]
myvideo = new Video();
myvideo.attachNetStream(videoStream);

还是不行,我在本地是没有问题的,就是放到服务器上不行了
跟swf放在一起的,swf就可以
nc.connect(null);

会是这个参数的原因吗;
参数  command:String — 如果要连接到本地计算机上的视频文件,请将此参数设置为 null。 如果要连接到服务器,则将此参数设置为包含服务器上视频文件的应用程序的 URI。 应使用以下语法(方括号中的项是可选的):
protocol:[//host][:port]/appname[/instanceName]

若要连接到 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放在一起应该算本地文件把,还是网络上的?

点评

你服务器没有添加mp4格式吧 [attachimg]1367[/attachimg]  详情 回复 发表于 6 天前
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /2 下一条

快速回复 返回顶部 返回列表