精华内容
下载资源
问答
  • 在用BitMapData.draw()方法去取一个视频图片时会报安全沙箱错误,以下是解决方法: 在创建NetStream时video先不要显示视频流(_video.attachNetStream(null)),等到播放视频时再显示视频(_video.attachNetStream(_...

    在用BitMapData.draw()方法去取一个视频图片时会报安全沙箱错误,以下是解决方法:

    在创建NetStream时video先不要显示视频流(_video.attachNetStream(null)),等到播放视频时再显示视频(_video.attachNetStream(_netStream))

        

    protected function CreateNetStream():void
            {
                _netStream = new NetStream(_connection);
                _netStream.addEventListener(NetStatusEvent.NET_STATUS,NetStatusHandler, false, 0, true);
                _netStream.addEventListener(AsyncErrorEvent.ASYNC_ERROR,AsyncErrorHandler, false, 0, true);
                _netStream.addEventListener(IOErrorEvent.IO_ERROR,IOErrorHandler,false, 0, true);
                _netStream.client={onMetaData:onMetaData,onPlayStatus:onPlayStatus};
              
                //_video.attachNetStream(_netStream);
                _video.attachNetStream(null);
    
            /******* 设置声音 *******/
                _netStream.soundTransform = _videoSound;
                _oldSound = _netStream.soundTransform;
                if(_controlBar != null)
                    _controlBar.VolumePane.slider.value = _netStream.soundTransform.volume *100;
            }
    /**
             *     播放方法
             * @param url_    播放地址
             */        
            public function PlayVideo(url_:String = ''):void
            {
            
                _controlBar.btnPlayorPause.status = ButtonStatus.ORIGINALSTATUS;
                if(url_== ""){
                    url_ = _mediaUrl;
                }
                else if(_mediaUrl != url_){
                    _mediaUrl = url_;
                }
                if(_mediaUrl == "" || _mediaUrl == null){
                    throw new Error("The url is null!");
                    return;
                }    
                if(_controlBar != null){
                    _controlBar.visible = true;
                    _controlBar.alpha = 0;
                }
                    
                _netStream.play(_mediaUrl);
                _video.attachNetStream(_netStream);
                HideItem(_btnPlay);
                _playStatus = PLAYING;        
                if(_TimeArea != null){
                    _TimeArea.visible = true;
                    _TimeArea.setTotalTime(_totalTime);
                    
                }
                if(_thumb != null && this.contains(_thumb)){
                    this.removeChild(_thumb);
                }
            }

     这样播放视频前和正在播放时都可以BitMapData.draw()方法去取一个视频图片而不会出现安全沙箱错误。。。不过如果想这样就算是解决了安全沙箱错误问题就大错特错了,不信,停止播放再draw()一下试试,又出现安全沙箱错误了吧。

        
            /**
             * 停止播放方法
             */
            public function Stopvideo():void
            {
                //停止播放并清除视频当前画面
                
                _netStream.close();
                _video.clear();
                ////
                /**当用bitmapdata.draw画video时会出现安全沙箱错误,当video.attachNetStream已设置过netStream后再设置为null也会出错
                 * 下面是克隆一个新的video来解决出现安全沙箱错误的
                 * */
                _video.attachNetStream(null);
                var tv:Video=cloneVideo(_video);
                if(_video.hasEventListener(MouseEvent.CLICK)){
                    _video.removeEventListener(MouseEvent.CLICK, onVideoClick);
                    tv.addEventListener(MouseEvent.CLICK, onVideoClick);
                }
                if(this.contains(_video)){
                    
                    this.addChild(tv);
                    this.setChildIndex(tv,this.getChildIndex(_video));
                    this.removeChild(_video);
                }
                _video=tv;
                _video.attachNetStream(null);
                //
                if(_thumb != null && !this.contains(_thumb)){
                    this.addChild(_thumb);
                    this.setChildIndex(_thumb, this.getChildIndex(_video) + 1);
                }
                ShowItem(_btnPlay);        
                _playStatus = STOP;
                _controlBar.btnPlayorPause.status = ButtonStatus.EXCHANGESTATUS;
                _playTimer.stop();
                if(_TimeArea != null){
                    _TimeArea.visible = false;
                    _TimeArea.setTotalTime(0);
                    _TimeArea.UpdateTime(0);
                }
                if(_controlBar != null){
                    _controlBar.visible = false;
    //                _controlBar.alpha = 0;
                }
            }


    private function cloneVideo(v:Video):Video{
            
                var tv:Video= new Video(_videoWidth, _videoHeight);
                tv.smoothing = v.smoothing;
                tv.x=v.x;
                tv.y=v.y;
                tv.width=v.width;
                tv.height=v.height;
                return tv;
                
            }

           

    转载于:https://www.cnblogs.com/skybdemq/archive/2012/11/19/2777766.html

    展开全文
  • ActionScript Error #2148:SecurityError: Error #2148: SWF file file:///C:/Documents and Settings/UserProfile/Desktop/flexstore/bin-release/flexstore.swf cannot access local resource myFile.swf....

    ActionScript Error #2148:
    SecurityError: Error #2148: SWF file file:///C:/Documents and Settings/UserProfile/Desktop/flexstore/bin-release/flexstore.swf cannot access local resource myFile.swf. Only local-with-filesystem and trusted local SWF files may access local resources.

    Description:
    ActionScript Error #2148 can be caused by a number of reasons. If you are using Flex please keep in mind that the bin directory is a special directory that the Flash player allows SWFs ( and other files ) to load from as long as the file is stored in this directory. It will also allow a loaded swf to access network resources (a remote HTTPService call for example). If these files are placed anywhere besides the bin directory, the Flash Player prevents the file from accessing any external resources. You can allow for external access by changing the settings within the FlashPlayer or within Flex. These solutions are listed below

    Fix 1 :
    If you're loading in XML or other files from a remote sever that isn't hosting the SWF too, make sure you create a crossdomain.xml policy, and put it on the root of your webserver. If you haven't heard about a cross domain policy or need help creating a crossdomain.xml file click the link and I will show you how to create a crossdomain.xml file. View my tutorial on How to Create a crossdomain.xml file and visit the links on the bottom of the page to learn more.

    XML Code:

    <?xml version="1.0"?>
    <!DOCTYPE cross-domain-policySYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
    <cross-domain-policy>
    <allow-access-from domain="www.curtismorley.com" />
    <allow-access-from domain="curtismorley.com" />
    </cross-domain-policy>

    Fix 2:
    Within ActionScript you are now able to specify the cross domain access from within the code. I won't get into the guts of this one but if you want to learn more view the Flash / Flex documentation or Adobe LiveDocs - Security Chapter or get Joey Lott's book ActionScript 3 Cookbook By adding this code you will get rid of ActionScript Error #2148 If you are using https:// you will need to use allowInsecureDomain() as shown below. If you are using a local file make sure to target it correctly(i.e. c:\myFolder).

    ActionScript Code:

    flash.system.Security.allowDomain("http://www.curtismorley.com");flash.system.Security.allowInsecureDomain("http://www.curtismorley.com");

    Fix 3:
    One hack to get rid of ActionScript Error 2148 is to add these arguments to the compiler (via Properties - Flex Compiler) : -use-network=false . Beware though this will effectively change your cross-domain security.

    Good Code:

    -use-network=false

    Fix 4:
    Make sure your Global Security Settings in Flash Player allows local access to the directory your SWF/XML is running from. At the Global Security Settings in Flash Player click on Edit locations >> Add location and then either type in the new location your SWF is at (i.e. c:\myFolder) or browse for the file or folder. Shut down Flash/ Flex and all instances of the Flash Player(including browsers), and then try again. This will eliminate this ActionScript Error #2148. This solution only works for you on your computer. If you cahnge computers or change locations on the web please refer back to Fix 1.

    And now you know 2 ways to fix and 2 ways to circumvent ActionScript Error #2418: Security Error

    Happy Flashing

    展开全文
  • 本人遇到 Flex 程序访问java程序WebService 调用外部天气预报没有报错,但是调用本地的WebService 程序报错沙箱冲突2048 看了这篇文章才明白怎么回事得以解决。1、问题描述  将flash发布为html格式后,加载 ...

    本人遇到 Flex 程序访问java程序WebService 调用外部天气预报没有报错,但是调用本地的WebService 程序报错沙箱冲突2048 看了这篇文章才明白怎么回事得以解决。

    1、问题描述

       将flash发布为html格式后,加载 页面后,swf 无法与服务器进行socket通信 。Flash端显示 的错误为:

    securityErrorHandler 信息: [SecurityErrorEvent type="securityError" bubbles=false cancelable=false eventPhase=2 text="Error #2048"]

       在服务器端显示的信息是由客户端尝试进行连接,但是无法接受数据。接受的数据显示为空。

    2.问题原因:

           最新的Flash player 9.0.124.0,当flash文件要进行socket通信的时候,需要向服务器端获取crossdomain.xml文件。如果找不到就出现客户端无 法连接服务器的现象。

    了解flash发起socket通信的三个过程

       当封装在页面的flash发起socket通信请求的时候会先寻找服务器端的843端口,获取Crossdomain.xml文件,当服务器没有开启 843的时候,flashPlayer会检查发起请求的swf文件中中有没有使用Security.loadPolicyFile来加载策略文件 Crossdomain.xml,如果还是没有就会看这个发起请求的swf要连接的目标端口有没有策略文件。如果都没有那么连接失败,返回如上的出错提 示。

    为什么老版本的Flash player没有这个问题?

       从一些官方的一些资料中了解了一下。以前的Flash Player无论你采用urlRequest的http请求方式或者xmlsocket socket方式,他们都共用一个安全策略文件。这个策略文件只要你放在主域的目录下就行了。而现在不行了,现在的策略文件如果你使用http请求方式那 么需要把策略文件放在目录下面,如果你使用socket请求方式就必须通过socket端口来接收这个策略文件。


       对应调用 的方式为:

       http请求——》Security.loadPolicyFile(“
    http://www.xxx.com/crossdomain.xml ”)

       socket或xmlsocket请求——》 Security.loadPolicyFile(“xmlsocket://www.xxx.com:port”)


    怎么将Socke策略文件发给Flash Player
       Flash Player在你的socket.connect("domain",port)运行之前,会按照前面描述的三个过程向你的socket服务器的843端 口(据说Adobe 已经向相关管理机构申请保留843端口给Flash Player用)发送一个字符串 "<policy-file-request/>",这个时候如果你有一个服务在监听843端口那么收到这个字符串之后,直接按照XML 格式发回策略文件就解决了。(注意发回的时候记得加一个截止字符"/0")


         当然你也 可以不用843端口自己设置一个端口。因为Flash Player如果在843端口得不到信息,就会检查你是否在你的Flash文件里面自己添加了指定的获取通道,你可以定义一个自己的端口。不过这个时候你 不能用http方式,而要用xmlsocket方式。(相当于自动帮你新建了一个xmlsocket对象 , 然后链接你指定的主机和端口)。比如你想用1234端口可以在你的Flash里面加这一句 Security.loadPolicyFile(“xmlsocket://www.xxx.com:1234”),需要注意的是这一句要加在你的 socket.connect前面。

        还有最后一个办法,就是在你的socket连接端口监听这个请求。比如你用的是 socket.connect("192.168.1.100",8888),那么在你的服务器加一段接收字符串"<policy-file- request/>"的代码,当接到这个字符串时将策略文家按照xml格式发到客户端。

     

        当然你也可以设置在flash中设置全局安全设置来设置权限。 在你的swf文件上单击鼠标右键 --> 全局设置

    打开 网站  flashPlayer 的帮助站点 ,--> 点击左侧  “全局安全设置”面板    在始终信任一下位置的文件中添加入你的文件或者文件夹。

     

     

     

     

    关于策略文件的格式(可以 在Flash CS3 帮助里面的Flash Player安全性——》控制权限概述中找到)

    1、 针对web应用 的策略文件

    下面的示例显示了一个策略文件,该 文件允许访问源自 *.iflashigame.com 和 192.0.34.166 的 SWF 文件。


    注意事项:

       默认情况下,策略文件必须命名为 crossdomain.xml,并且必须位于服务器的根目录中。但是,SWF 文件可以通过调用 Security.loadPolicyFile() 方法检查是否为其它名称或位于其它目录中。跨域策略文件仅适用于从其中加载该文件的目录及其子目录。因此,根目录中的策略文件适用于整个服务器,但是从任 意子目录加载的策略文件仅适用于该目录及其子目录。

       策略文件仅影响对其所在特定服务器的访问。例如,位于
    https://www.adobe.com:8080/crossdomain.xml 的策略文件只适用于在端口 8080 通过 HTTPS 对 www.adobe.com 进行的数据加载调用。


    2、针对Socket 的策略文件



     

     

    下面有个实例来描述flex与twisted的通信以及解决跨域的问题

    展开全文
  • 当a.com中的flash要访问b.com中的资源(如图片等)时,flex会提示安全沙箱错误!
  • Unity 安全沙箱 SocketPolicy

    千次阅读 2012-10-22 17:13:26
    unity和flash、Flex一样,都有安全沙箱机制。 简单来说,就是在跨域访问的时候,首先访问服务器的843端口,取权限数据。 所以,处理安全沙箱错误,和flash、Flex一样,定义可以访问的权限:

    unity和flash、Flex一样,都有安全沙箱机制。

    简单来说,就是在跨域访问的时候,首先访问服务器的843端口,取权限数据。

    所以,处理安全沙箱错误,和flash、Flex一样,定义可以访问的权限:

    <cross-domain-policy>
      <site-control permitted-cross-domain-policies="all"/>
      <allow-access-from domain="*" to-ports="58000" />
      <allow-access-from domain="*" to-ports="58001" />
    </cross-domain-policy>

     

    展开全文
  • java flash 安全沙箱

    2012-04-23 15:27:37
    当服务端843不开放,或者安全时间(3秒)内无返回时,如果是socket通信,flash会向服务端socket指定端口发送请求报文,如果服务端无返回或返回不是安全策略文件,那么flash将报安全沙箱错误。安全策略文件内容如下: ...
  • Flex 安全沙箱

    2019-04-18 17:58:27
    Flex 安全沙箱
  • 访问时提示错误:SecurityError: Error #2048: 安全沙箱冲突 解决方法: Flash Player对访问外部资源有...当你在使用ArcGIS Flex API的时候出现了安全沙箱错误(注意,这个错误在调试状态下不会出现,因为IDE已...
  • 前几天在自己的机器上打了一套arcgis flex的开发环境,在本机发布了地图服务,在flex中使用localhost获取地图时一切正常,但改成IP地址后包安全沙箱错误。  网上搜得解决方案,在此备份:  Flash Player对...
  • ArcGis For Flex安全沙箱

    2013-07-19 10:05:29
    前几天在自己的机器上打了一套arcgis flex的开发环境,在本机发布了地图服务,在flex中使用localhost获取地图时一切正常,但改成IP地址后包安全沙箱错误。  网上搜得解决方案,在此备份:    Flash ...
  • 安全沙箱问题

    2019-09-10 18:34:40
    某个列表flash页面需要支持gravatar的头像(gravatar的跨域策略文件位于http://www.gravatar.com/avatar/crossdomain.xml)在加载他们提供的图片头像时我遇到了安全沙箱冲突,错误信息是: SecurityError: Error ....
  • 前几天在自己的机器上打了一套arcgis flex的开发环境,在本机发布了地图服务,在flex中使用localhost获取地图时一切正常,但改成IP地址后包安全沙箱错误。  网上搜得解决方案:  Flash Player对访问外部资源有...
  • 前两天在做loader加载图片的时候,虽然在服务端的Root下面已经有crossdomain.xml的跨域文件,但却意外的发现仍然报出了安全沙箱错误,当然最后还是解决了,只能说,flash的安全性真是很麻烦: A机:发布地图...
  • 在编写FLEX程序时,老是遇到安全沙箱错误,经过多次失败、GOOGLE搜索,得出如下结论: 1.对于ADOBE搞出的安全沙箱的必要性,网上N多人转贴,内容雷同,讲得头头是道,但作为一个开发人员,觉得完全是鸡肋。 安全...
  • flex 安全沙箱问题

    2013-10-21 09:39:04
    所谓“安全沙箱”,其实是flex的一种安全策略,这确实给不少初学者造成很大程度上的困难。...建立socket,前提是flash文件在浏览器中运行安全沙箱才会其作用,如果直接使用本地flash播放器运行则不会出现安全沙箱...
  • 本程序为绿色mini服务程序 程序会自动打开Flash默认的843端 自动将crossdomain.xml返回给flash客户端 您可以修改crossdomain.xml中的内容,大小不要超过10K 有问题可email我
  • flex安全沙箱

    2012-06-30 16:27:53
    flex安全沙箱 2011年02月22日  不同域swf交互需要安全域文件和Security.allowDomain(“*“);  安全沙箱包括:远程沙箱与本地沙箱。其实这个沙箱模型类似与浏览器中的同源策略。在同一域内的资源会被放到一个...
  •  前几天在自己的机器上打了一套arcgis flex的开发环境,在本机发布了地图服务,在flex中使用localhost获取地图时一切正常,但改成IP地址后包安全沙箱错误。  网上搜得解决方案,在此备份:    Flash ...
  • flex 安全沙箱

    2011-06-09 09:11:26
    关于安全沙箱 安全沙箱包括:远程沙箱与本地沙箱。其实这个沙箱模型类似与浏览器中的同源策略。在同一域内的资源会被放到一个安全组下,这个安全组就被称为安全沙箱了。 在深入了解沙箱之前先得明确Flash ...
  • 这个方式如果你的flash是直接放在本地目录上运行那还可以放在服务器上加载会报错安全沙箱冲突看了看loader 的 load的方法 load(request:URLRequest, context :LoaderContext = null ):void context :...
  • *** 安全沙箱冲突 ***到 http://api.map.baidu.com/telematics/v3/weather?location=%E6%88%90%E9%83%BD&output=json&ak=D445c65d79c46492e829a2a6aaba0816&qq-pf-to=pcqq.c2c 的连接已停止 - 不允许从 ...
  • [RPC Fault faultString="Send failed" faultCode="Client.Error.MessageSend" faultDetail="Channel.Security.Error error Error #2048 url: '...] 试了很多遍 ...
  • flex提示安全沙箱

    2013-07-31 23:48:23
    网上的方法很多,我看的不下6中,但是就是不管用,我的情况是,在程序没发布时,直接运行没错误,但是当发布时,访问就错了,提示SecurityError: Error #2048: 安全沙箱冲突:http://localhost:8086/index.swf 不能从...
  • ArcGIS 10.0常见错误及注意事项 1、安全沙箱问题 在以下位置放置crossdomain.xml,文件 10.0 -*:\Program Files\ArcGIS\Server\java\manager\web_output crossdomain.xml文件内容如下: 2、arcgis管理器不能访问问题...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,169
精华内容 3,267
关键字:

安全沙箱错误