0

확인. 그래서 저는 db에서 아이템을 가져 와서 갤러리를 만드는 앱을 만들고 있습니다. 나는이 일을 수 차례 해봤고 간단해야합니다.AS3 객체 필터링

나는이 갤러리에서 이미지 파일과 다른 파일을 모두 포함하는 db의 결과를 얻었 기 때문에 문제가 발생했습니다. 그냥 플래시 만 변경할 수는 없으므로 이미지인지 감지하고 필요하면 표시해야합니다.

내 질문은 : 도대체 어떻게 개체를 동일한 크기로 유지하지 않고 개체에서 속성을 삭제할 수 있습니까? count() 함수를 사용하여 페이지 매김 (pagination) 데이터를 생성하므로 'null'할 수 없으며, 이해함에 따라 delete()도 옵션이 아닙니다.

내 솔루션은 다른 객체를 만들고, for 루프로 좋은 항목을 필터링 한 다음 다른 객체에 팝하는 것이지만 객체의 각 항목은 객체이며 push()가 없습니다. 함수를 호출합니다.

필자는 필자는 인덱스 (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를 반환 미디어 오브젝트는 오브젝트의 모든 가득 차있다.

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

내가 그 (? 그것은 루프 밖으로 던져 것)이 가능하지 않을 수도 있습니다 실현,하지만 비슷한 달콤한 것 :

내가 많이 거라고는이 일을하는 것을 선호합니다. 나는이 쓸모없는 물건들을 모두 사로 잡을 수있게되고 싶다.

어떤 아이디어가 있습니까? 당신은 지금 당신의 객체를 저장하기 위해 사용하고있는

덕분에,

제시

답변

0

는 연관 배열이라고합니다. 연관 배열에서 키 - 값을 제거 할 수 없습니다. 필요한 것은 사전입니다 (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"] 
+0

감사를 호출하여 사전에서 키를 제거 할 수 있습니다, 나는 사전에서 삭제하는 것은 다르게 취급 것을 몰랐다. 객체에서 똑같은 명령은 카운트 함수를 끄는 "null"값과 in 문에 대한 색인을 생성합니다. – Jesse

+0

"연관 배열에서 키 - 값을 제거 할 수 없습니다." - 사실이 아니야. 객체 삭제 [ "key"]; 공장. – Heitara