"웹상에서 보이는 모습"




플래시 사진 갤러리를 만들었으면 실제로 웹 사이트에 적용해 보기로 합니다. 제일 먼저 생각해야 할 것은 네트워 크상에 올리는 방안에 관해서 입니다. 시나리오는 다음과 같습니다. 

1. 기존 이미지 파일들이 나열된 XML 파일을 네트워크상에서 읽어온다. 
2. XML 파일을 읽어서 사진이 저장된 사진의 URL을 가져온다. 
3. 기존과 동일하게 플래시에 적용 시킨다. 

더 간단하게 이야기 하자면 'XML 파일을 네트워크상에서 읽어오게 하는 일'입니다. 

기존 FLA 파일에서 ActionScript 부분만 수정해 주면 됩니다. 

var urlXML:String = "http://192.168.10.16:8080/pub/imagelist.xml";
//var hardcodedXML:String="<photos><image title='2or0'>2or0.jpg</image><image title='conan'>conan.jpg</image><image title='Girls_gene'>Girls_gene.jpg</image><image title='Mystery'>mystery.jpg</image></photos>";
var loader:URLLoader = new URLLoader();

urlXML 변수는 XML 파일이 저장된 위치를 지정해주는 변수입니다. 
hardcodedXML 은 외부 파일로 저장하기로 했기 때문에 comment 처리 해줬습니다. 기존의 쓰여진 내용은 urlXML 에 지정된 XML 파일에 저장되어 있습니다. 
외우에 있는 XML 파일을 로딩하기 위해서 loader 를 선언해 줍니다. 


loader.addEventListener(Event.COMPLETE, loadCompleteHandler);
loader.load(new URLRequest(urlXML));

loader 에서 load 가 끝났을 때 실행되는 이벤트 핸들러를 지정해 줍니다. (필수)
urlXML 이 지정하고 있는 XML 파일을 읽어오게 loader.load 로 수행해줍니다. 

// CODE FOR HARDCODED XML =====
// imageList = XML(hardcodedXML);
// fl_parseImageXML(imageList);
// END CODE FOR HARDCODED XML

기존 XML 에서 이미지리스트를 얻어오는 부분은 Comment 처리 해줍니다. 

function loadCompleteHandler (evt:Event) :void {
var hardcodedXML:String = loader.data;

imageList = XML(hardcodedXML);
fl_parseImageXML(imageList);

}

XML 로딩이 끝났을 때 불려지는 이벤트 핸들러 함수 입니다. 로딩이 끝나면 loader.data 에 읽어온 XML 내용이 들어 있습니다. 이것을 기존에 쓰던 hardcodedXML 에 저장하고 기존 이미지리스트 분리하는 함수를 로딩해 줍니다. 

이렇게만 바꿔주고 imagelist.xml 파일과 플래시에서 불러오는 image 들을 적절한 위치에 복사해주면 됩니다. (저는 http://192.168.10.16:8080/pub 밑에 몰아 넣습니다)

Flash CS4 용 소스로 변환해 뒀습니다.  
imagelist.xml 예시 입니다. 

[관련포스트]

+ Recent posts