flash 3d flash3d 研究所 pv3d 共享资源  | 经典范例  | 视频教程  | 友情链接  | 联系我们
登陆 | 注册  flash 3d 研究所
讨论区





最近更新:
● 无语瓶阁下在教程区里 回复“《超简易papervision3D基础 ...”(18:09:44)
● payday loan阁下在教程区里 回复“《pv3d, sandy, away3d...”(05:56:23)
● bad credit payday loan阁下在教程区里 回复“《超简易papervision3D基础 ...”(05:56:13)
浏览主题:关于资源类的封装,的疑问

关于资源类的封装,的疑问
juessy (2010-02-26 19:18:15)

想把所有资源封装成一个类

    import flash.events.Event;
    import Common.DataLoader;

    public class Resource
    {
        public function Resource(id:Number=0,isLoad:Boolean=false,onComplete:Function=null,onError:Function=null)
        {
            var tUrl:String="/re.aspx?id={ID}";
            if(id!=0)this.url=tUrl.replace("{ID}",id);
            if(isLoad){
                this.load(onComplete,onError);
            }
        }
       
        /**
         * 资源的路径
         * */
         public var url:String=null;
         
         /**
         * 资源的对象
         * */
         public var data:Object=null;
         
         /**
         * 是否已经加载完成
         * */
         public var isLoaded:Boolean=false;
         
         /**
         * 载入该资源
         * @onComplete:将数据下载完成,并成功存储到data字段中后触发
         *         参数:data:Object(加载的对象)
         * */
         public function load(onComplete:Function=null,onError:Function=null):void{
             DataLoader.getData(url,null,function(e:Event):void{
                 data=e.target.loader.contentLoaderInfo.content as Object;
                 isLoaded=true;
                 if(onComplete!=null)onComplete(data);
             },null,onError);
         }
    }

DataLoader另一个数据载入类,getData是get请求远程数据的方法,其他参数一看就明白了
上面关于资源封装的思路我想是很清楚了,因为我一开始是做网站程序的,而现在学as
用同样的思路,可能会有些问题.所以来请教下,让大家给我点建议

现在关键了,程序中,我想达成这样的效果,对即时载入资源的界面处理
如:现在界面上进来一个物体,这个物体的显示需要几张图片,而这个物体一进来就需要显示,但是这个物体需要的资源是在远程,远程获取需要一小段时间,我不想等他载入完成后才突然出现在界面里,所以我想:在获取远程图片时.先用一个本地图片代替显示,而等远程图片载入完成后,把那临时的图片替换掉

想让大家给我个具体的设计思路





flash 3d 研究所 juessy
(2010-02-26 19:21:26)
我现在是这样的思路
利用上面的onComplete事件替换的

想问问有什么更好的思路,或者我这个思路有什么不好的地方

还有点非常之重要,需要强人的指点
关于as3的内存泄漏问题,应该怎么样避免,应该注意哪些东西?

flash 3d 研究所 juessy
(2010-02-26 19:23:07)
还有.上面的资源请求路径
var tUrl:String="/re.aspx?id={ID}";
我想配置在一个全局的地方

像.NET的web.config这样的东西

如果没的话,是不是只能用自己写的xml来做了?

flash 3d 研究所 noxss
(2010-02-27 01:05:48)
我是这样想的:
先预备几张低分辨率的图片,EMBED进去,做成材质贴到模型上(顺便把舞台质量降中,材质设个SMOOTH,看起来效果好点)这样SWF打开时就可以看到模型了,同时LOADER开始加载高分辨率的贴图,完成后(onComplete啥的,不过我建议有专门的类来管理事件,当然这属于一些设计模式方面的问题,请自行查阅资料设计您自己需要的模式)再把高分贴图贴到模型上。

内存泄露我只碰到过一次,是因为采用了过大分辨率的贴图的关系(2048X2048)。

配置方面建议在服务器端放个初始化的配置文件,每次最先加载它来进行初始化。

flash 3d 研究所 juessy
(2010-02-27 08:12:52)
呵呵,谢谢
你前面的想法几乎和我一致

为什么"用了过大分辨率的贴图的关系"会导致内存泄漏呢?不知道你有做过详细的分析吗?也给我参考参考

关于配置,按你怎么说,就是说as没有自带的一个配置功能咯?
我是用FlexBuilder3开发的

flash 3d 研究所 noxss
(2010-02-27 19:25:10)
内存泄露问题我没有分析过,网上有些资料你可以找找。
配置方面的问题纯属个人喜好,我一般放在服务器端是为了方便管理。其他方法无任何问题。

flash 3d 研究所 noxss
(2010-02-27 19:25:28)
内存泄露问题我没有分析过,网上有些资料你可以找找。
配置方面的问题纯属个人喜好,我一般放在服务器端是为了方便管理。其他方法无任何问题。

评论人:
邮   箱: (填入邮箱,博客地址均可)

内   容: (广告和垃圾内容可能会被删除,望理解)
链接地址

验证码:(为防止机器人骚扰,请麻烦输入验证码^_^)
  

(目前需登陆方可发表)


不想添加了