【问题标题】:Problem with access an local Image (not in app workspace) from a local HTML file (in app workspace)从本地 HTML 文件(在应用程序工作区中)访问本地图像(不在应用程序工作区中)的问题
【发布时间】:2011-03-12 10:45:47
【问题描述】:

我有一个 HTML 框并从项目中加载一个本地 html 文件。 在这个 HTML 文件中,我使用 jquery,并且我想从我的用户目录加载图像。 我从我的用户目录中看到了图像,但 jquery 不起作用。 我收到此错误:

TypeError: Error #1009: Cannot access a property or method of a null object reference.
    at crop/onLoaded()[/Flex Bundle/workspace/crop/src/crop.mxml:119]
    at flash.events::EventDispatcher/dispatchEventFunction()
    at flash.events::EventDispatcher/dispatchEvent()
    at flash.html::HTMLLoader/onCompleteTimer()
    at flash.utils::Timer/_timerDispatch()
    at flash.utils::Timer/tick()

但是,如果我从应用工作区加载图像,一切正常(我看到图像并且 Jquery 工作)。

这是一个政策问题吗?错误说这是一个“空对象引用”问题,但这不可能是真的......

有什么想法吗?

达米安

【问题讨论】:

    标签: javascript html apache-flex air adobe


    【解决方案1】:

    如果将图像放在另一个目录中会有帮助吗?

    您可以将图像文件放在 My Documents/myairapp 或 /home/user/Documents/myairapp 中,然后使用以下命令打开它:

    var original = air.File.documentsDirectory.resolvePath("myairapp/test.jpg");
    

    您可能会遇到权限问题,具体取决于文件所在的目录?

    【讨论】:

    • 那行不通。我从documentsDirectory 打开html 文件和图像。我将新图像保存在同一目录中。这没有任何权限问题。
    【解决方案2】:

    我将文件从应用程序目录复制到自定义目录的解决方案:

    变量:

    private var fileName:String = 'config.xml';
    private var workingDirectory:String = 'MyNewAppDir';
    
    1. 简短:
    var f:File = File.applicationDirectory.resolvePath(this.fileName );
    f.copyTo( File.documentsDirectory.resolvePath(this.workingDirectory+"/"+this.fileName));
    

    或 2. 冗长而复杂:

    /**
     * read content
     */
    var file:File = File.applicationDirectory.resolvePath( this.fileName );
    var read:FileStream = new FileStream();
    read.open(file, FileMode.READ);
    var content:String = read.readMultiByte( read.bytesAvailable, "utf-8") ;
    read.close();
    
    /**
     * save content
     */
    var write:FileStream = new FileStream();
    write.open( File.documentsDirectory.resolvePath( this.workingDirectory + "/" + this.fileName ), FileMode.WRITE );
    write.writeMultiByte( content, "utf-8" );
    write.close();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-09
      • 1970-01-01
      • 2021-08-05
      • 2021-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-09
      相关资源
      最近更新 更多