如何使用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 } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |