加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何使用Flash在ActionScript 3中动态加载渐进式jpeg / jpg,并在

发布时间:2020-12-15 07:30:05 所属栏目:百科 来源:网络整理
导读:我正在尝试使用ActionScript 3动态加载渐进式jpeg.为此,我创建了一个名为Progressiveloader的类,它创建一个URLStream并使用它将渐进式jpeg字节流加载到byteArray中.每次byteArray增长时,我都使用Loader来加载byteArray.这在某种程度上是有效的,因为如果我add
我正在尝试使用ActionScript 3动态加载渐进式jpeg.为此,我创建了一个名为Progressiveloader的类,它创建一个URLStream并使用它将渐进式jpeg字节流加载到byteArray中.每次byteArray增长时,我都使用Loader来加载byteArray.这在某种程度上是有效的,因为如果我addChild加载器,我能够看到jpeg流式传输,但我无法访问Loader的内容,最重要的是,我无法更改Loader的宽度和高度.

经过大量的测试,我似乎已经找出问题的原因是,直到Loader完全加载jpg,这意味着直到他实际看到jpg的结束字节,他不知道宽度和高度,他不会创建与Loader内容关联的内容DisplayObject.

我的问题是,有没有办法在加载之前真正知道jpeg的宽度和高度?

P.S.:我相信这是可能的,因为渐进式jpeg的性质,它被加载到它的全尺寸,但细节较少,因此应该知道尺寸.即使以这种方式加载普通的jpeg,也可以在屏幕上看到大小,除了尚未加载的像素显示为灰色.

谢谢.

解决方法

我认为你的问题是loadBytes是异步的……这意味着你需要等到“完成”事件才能检索(或改变)它的宽度和高度…我的意思是:

var loader:Loader=new Loader();
loader.loadBytes(myBytes);
trace(loader.width,loader.contentLoaderInfo.width); //will always output zero
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,imgLoaded);
function imgLoaded(e) {
   trace(loader.width,loader.height); //will output the loader dimensions
   trace(loader.contentLoaderInfo.width,loader.contentLoaderInfo.height); //will always output the original JPEG dimensions
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读