2012-07-12 4 views
0

내가 작업중인 앱은 4 개의 임의 이미지를 한 순간에 표시합니다. 이 네 개의 이미지는 50 개의 이미지 세트에서옵니다. 이것이 표준 플렉스 프로젝트 인 경우 img.source 속성을 설정하기 만하면됩니다.어도비 에어에 동적 이미지 애셋을로드하는 방법

this.img1.source ="../assets/img/"+randomname+".png";` 

그래도 작동하지 않습니다. 깨진 이미지가 나타납니다. 대략가는 또 다른 방법으로는 이미지를로드하지 않는은 URLLoader와 이미지를로드하는 것입니다 그래서이 하나, 내가 '작동하지 않는

loader = new Loader(); 
var urlReq:URLRequest = new URLRequest("../assets/img/"+randomname+".png"); 
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loaded); 
loader.load(urlReq) 

(당연히, 그것은 지역 자산의 주어진) 모든 이미지를 swc에로드 한 다음 swc를 프로젝트에 연결하는 것을 생각합니다. 이것은 모든 자산이 런타임에 메모리에로드되므로 분명히 좋지 않습니다. 이 일을하는 또 다른 방법이 있습니까?

나는 정말 간단한 것을 놓치기를 바라고 있습니다.

.swc 솔루션이 가장 적합한 경우 누군가 나를 올바른 방향으로 안내 할 수 있습니까? Flex/Flash로 작업 한 지 2 년이 지났기 때문에 전체 비즈니스가 어떻게 작동하는지 잊어 버렸습니다. 사전

+0

'URLLoader '는 파일 시스템에서 파일을로드합니다. 이미지의 URL이 잘못되었을 수 있습니다. 프로젝트의 "src"폴더와 관련하여 "assets"폴더는 어디에 있습니까? – NoobsArePeople2

+0

'assets'폴더는 'src'폴더와 같은 수준에 있습니다. 나는 "../assets/img"와 "assets/img"를 파일 경로의 시작으로 사용하여'URLLoader'를 시도했습니다. 나는'Error # 2044 : Unhandled IOErrorEvent :를 얻는다. text = 오류 # 2035 : URL을 찾을 수 없습니다. '오류 – cside23

+0

Flash Builder에서이 프로그램을 실행하고 있습니까? 자산 폴더가 bin-debug 폴더로 복사되고 있습니까? – NoobsArePeople2

답변

0

에서

덕분에 당신은 시도 할 수 있습니다 :

var urlReq:URLRequest = new URLRequest("assets/img/"+randomname+".png"); 
+0

답장을 보내 주셔서 감사합니다. 불행히도 이것은 작동하지 않는 것 같습니다. 'assets'과 'src'폴더는 같은 레벨에 있으며, 'assets/img'과 '../assets/img'는 URLRequest에 매개 변수로 'Error # 2044 : Unhandled IOErrorEvent :'를 제공합니다. text = Error # 2035 : URL을 찾을 수 없습니다. '라는 오류가 발생했습니다. 따라서 Air에서 로컬 파일을로드 할 수 없다고 생각하는 이유는 무엇입니까? 어떤 아이디어? – cside23

+0

파일을 가져올 수 있지만 자산 폴더는 src 폴더 아래에 있습니다. 또는 전체 경로를 입력 할 수도 있습니다 (예 : "c : /"+ 프로젝트 경로 + "/ assets/img /"+ 임의 이름 + ".png". "프로젝트 경로"는 창 환경에서 "사용자/사용자 이름/Adobe Flash Builder 4.6/프로젝트 이름"과 유사합니다. – michael

1

당신은 "소스"디렉토리로 자산 디렉토리를 추가해야합니다.

그러면 자산 디렉토리의 내용이 응용 프로그램의 루트에 복사된다는 사실을 알고 있어야합니다. 따라서 이미지가 "assets/interface/bg.png"이면 새 URLRequest ("interface/bg.png")를 사용하여 이미지를로드해야합니다.