문제

확인. 그래서 저는 DB에서 항목을 검색하고 갤러리를 작성하는 앱을 작업하고 있습니다. 나는 이것을 여러 번했는데 간단해야합니다.

이 갤러리에서는 이미지 파일과 다른 파일이 모두 포함 된 DB의 결과를 얻기 때문에 문제가 발생합니다. 플래시 외에는 아무것도 바꿀 수 없다고 가정 해 봅시다. 그래서 이미지인지 감지해야하며, 그 경우에만 표시해야합니다.

내 질문은 다음과 같습니다. 대체는 어떻게 같은 크기를 유지하지 않고 객체에서 속성을 삭제할 수 있습니까? 카운트 () 함수를 사용하여 페이지 매김 데이터를 생성하므로 '널'을 '널'할 수 없으며 이해할 수 있듯이 삭제 ()도 옵션이 아닙니다.

이것에 대한 나의 해결책은 다른 객체를 만들고, 좋은 항목을 for in in loop으로 필터링 한 다음 다른 객체로 팝업하는 것이지만, 객체의 각 항목은 객체이며 객체에 대한 푸시 () 함수가 없습니다.

따라서 절망적으로 인덱스 (GoodItemsObject [index] = allitemsObject [object])를 사용하여 새 객체에 객체를 추가하기 위해 증분을 사용하고 있지만,이 문제를 해결하는 정말 끔찍한 방법처럼 보입니다.

코드는 다음과 같습니다.

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 ()은 단지 true 또는 false를 반환하고 MediaObject는 모두 객체로 가득합니다.

나는 이것을하는 것을 선호한다 :

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

나는 그것이 불가능할 수도 있다는 것을 알고 있지만 (루프를 위해 버릴까요?) 비슷한 것이 달콤합니다. 나는 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