【问题标题】:Getting a size from a loaded file via a File variable type ActionScript3通过文件变量类型 ActionScript3 从加载的文件中获取大小
【发布时间】:2013-03-14 13:50:28
【问题描述】:

无法获取我的文件大小!我有一个加载文件的变量,然后在我的 fileCompleteLoad 事件中我想检查该文件的大小 (.png)。

// clickButton event to load the file

public function onMouseClick(e:MouseEvent):void{
    _fileRef = new File();
    _fileRef.addEventListener(Event.SELECT, onFileSelected, false, 0, true);
    _fileRef.addEventListener(Event.CANCEL, onCancel, false, 0, true);
    _fileRef.addEventListener(IOErrorEvent.IO_ERROR, onIOError, false, 0, true);
    _fileRef.addEventListener(SecurityErrorEvent.SECURITY_ERROR, 
    onSecurityError,  false, 0, true);

    _fileRef.browse([_imageFilter]);
}

// selected event

public function onFileSelected(evt:Event):void
{
    _fileRef.addEventListener(ProgressEvent.PROGRESS, onProgress, false, 0, true);
    _fileRef.addEventListener(Event.COMPLETE, onComplete, false, 0, true);
    _fileRef.load();
}


// thats my eventComplete

 public function onComplete(evt:Event):void
{
    _msgSuccessErrorTextField.text = "File was successfully loaded.";
    _pngInputTextField.text = String(_fileRef.nativePath);
    _atfOutputTextField.text = _fileRef.nativePath.replace(".png",".atf");
    _inputNativeProcess = _fileRef.nativePath;
    _outputNativeProcess = _atfOutputTextField.text;
    _flagLoadedFile = new Boolean(true);

    var test:Bitmap = evt.target.data as Bitmap;
    if(test){
        trace(test.height);
    }

    _fileRef.removeEventListener(Event.SELECT, onFileSelected);
    _fileRef.removeEventListener(ProgressEvent.PROGRESS, onProgress);
    _fileRef.removeEventListener(Event.COMPLETE, onComplete);
    _fileRef.removeEventListener(Event.CANCEL, onCancel);    

现在,在那种情况下,我想检查我的文件大小...我尝试了很多东西但没有成功...有时我的 _fileRef.data 为空。

有解决这个问题的建议吗?

谢谢

【问题讨论】:

    标签: actionscript-3


    【解决方案1】:

    只是为了确保,您是否在 onComplete 处理程序中获取了 data?您显示的代码现在不这样做。应该是这样的:

    _fileRef.addEventListener(Event.COMPLETE, onComplete, false, 0, true);
    
    private function onComplete(e:Event):void
    {
        var test:Bitmap = e.target.data as Bitmap;
        if(test)
            trace(test.height);
    }
    

    【讨论】:

    • 我按照你说的做了,但仍然没有工作......它说我的测试:位图正在接收 NULL,实际上不是文件。我用我的活动编辑我的问题。看看
    • e.targete.target.data有哪些类型? e.target.data 也是 NULL 吗?
    • _browsePngTextFiledButton.addEventListener(MouseEvent.MOUSE_DOWN, onMouseClick, false, 0, true);
    • 我的 e.target.data 不为空...它有 nativepath、url 和其他
    • 里面有实际加载的图像数据吗?您应该将它用于位图。
    【解决方案2】:

    答案是——

    //add that on my public function onComplete(evt:Event):void{}

    var loader:Loader = new Loader();
    
    loader.loadBytes(byteArray);
    
    loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loaderComplete);
    
    // 构建另一个事件
    
    公共函数加载器完成(事件:事件):无效
    {
    var loaderInfo:LoaderInfo = LoaderInfo(event.target);
    
    var bitmapData:BitmapData = new BitmapData(loaderInfo.width,
    loaderInfo.height, false, 0xFFFFFF);
    
    bitmapData.draw(loaderInfo.loader);
    // 结果:位图数据
    

    }

    现在我可以得到 Heigh、witdh 和其他任何东西......谢谢!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-22
      相关资源
      最近更新 更多