代码之家  ›  专栏  ›  技术社区  ›  jeffcook2150

filereference.load()未填充filereference.data

  •  2
  • jeffcook2150  · 技术社区  · 15 年前

    我尝试使用FileReference对象的Load方法来加载数据,并使用它来显示所选图像的缩略图。

    但是,打电话后 fr.load() , fr.data 残余 null .

    我在Windows7上使用了flex builder 3.0.2和flex sdk 3.4以及flash player 10调试。如果我评估 Fr.Load() 在Eclipse的监视变量列表中,我得到一个错误读取 "No such variable: load."

    有人知道这是为什么吗?

    5 回复  |  直到 11 年前
        1
  •  2
  •   dustmachine    15 年前

    你在等吗 load() 完成?尝试添加一个EventListener来侦听要完成的加载。

    FileReference docs

    fr.addEventListener(Event.COMPLETE, function(e:Event):void {
                                            handleLoad(e);
                                        });
    

    这个 handleLoad 你写的函数可以通过 e.target.data

        2
  •  1
  •   Amarghosh    15 年前

    编辑:仅适用于FP9。


    你确定你用的是正确的课程吗? FileReference 没有一个 负载 方法或 数据 财产。我想你指的是 URLLoader 类-它同时具有这两个属性,这是您应该用来加载数据的。 FileReference 类用于将文件从服务器下载到用户的计算机(而不是SWF),并将文件从用户的计算机上载到服务器。

    使用 URLLoader 用于将数据加载到SWF和 Loader 类将其他SWF和图像加载到SWF。 Loader 类有 content 类似于 data 性质 装载机 它将保存加载的内容。这个 load() 这两个类的方法都是异步的(返回时不等待加载完成),因此,正如@dustmachine所指出的,只有在 Event.COMPLETE 被解雇。

    var urlLoader:URLLoader = new URLLoader();
    urlLoader.addEventListener(Event.COMPLETE, onLoad);
    urlLoader.load(new URLRequest(theURL));
    
    private function onLoad(e:Event):void
    {
      var urlLoader:URLLoader = URLLoader(e.target);
      trace(urlLoader.data);
    }
    
        3
  •  1
  •   Eugene    15 年前

    对于filereference类和load()函数,我也有同样的问题。问题可以这样解决:

    1. 打开“灵活构建路径”选项卡。
    2. 展开“flex 3”,选择“playerglobal.swc”,然后单击“删除”。
    3. 请注意“flex 3-”中的目录路径(在我的系统中是/applications/adobe flex builder 3 plug-in/sdks/3.2.0)。
    4. 单击“添加SWC”并导航到该路径,然后深入到frameworks/libs/player/10,选择playerglobal.swc。
    5. 展开“playerglobal.swc”,双击“link type”并将其更改为“external”。
    6. 打开“Flex编译器”选项卡
    7. 在“HTML包装器”中,将“需要Flash播放器版本”更改为10.0.0。
        4
  •  0
  •   Treby    15 年前

    你给文件引用传递了什么吗?

    例如从数据报

    var listFiles:DataGrid = new DataGrid();
    var _refUploadFile:FileReference = new FileReference();                 
    _refUploadFile = listFiles.selectedItem.file;   
    
    _refUploadFile.load();
    
        5
  •  0
  •   TheHippo    11 年前

    必须先执行以下操作:

    fileReference.cancel();
    
    推荐文章