确定。所以我的工作是从数据库中检索项目,并建立了一个画廊的应用程序。我做这个一吨的时候,它应该是简单的。

我遇到的问题,因为在这个画廊,我得到来自包括图像文件和其他文件分贝的结果。这么说吧,我不能改变什么,但闪光灯,所以我需要来检测,如果它是一个图像,并只显示它,如果它是。

我的问题是:如何地狱我可以从对象删除属性没有保持相同尺寸的对象?我用的计数()函数生成分页数据,所以不能只“空”它们,并且据我所知,删除()不是一个选项或者

我对这个解决办法是只创建另一个对象,筛选具有良好的项目中循环,然后弹出他们到另一个对象,但对象中的每个项目都是一个对象,我没有推()函数为对象。

因此,在绝望中,我使用的是增量的对象添加到使用索引(goodItemsObject [指数] = allItemsObject [对象])新的对象,但是,似乎是解决这个问题得到的一个非常可怕的方式。

下面是一些代码:

var filteredMO = new Object();
var newFile = 0;
for each(var file in mediaObject){
if(check_file(file)){
    filteredMO[newFile] = file;
    newFile++;
}
}
mediaObject = filteredMO;

check_file()只返回真或假,是的mediaObject所有充满对象。

我更喜欢做这样的:

for each(var file in mediaObject){
    if(check_file(file)){
         //remove_from_object_for_reals(mediaObject[file]);
    }
}

我认识到,也许是不可能的(它会甩开for循环?),但类似的事情会是甜的。我很想能够让GC抓住所有这些无用之物悬了。

任何想法?

感谢,

杰西

有帮助吗?

解决方案

您正在使用现在存储你的对象什么叫做关联数组。你不能从关联数组中删除键值。你需要的是一本字典(其中AS3具有内置的一个的 http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/utils/Dictionary.html )。

import flash.utils.Dictionary;

var dict:Dictionary = new Dictionary();

,那么你可以通过调用删除您辞典的键,

delete dict["myKey"]
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top