2010-08-23 2 views
1

현재 웹 사이트에서 작업 중이며 플래시 갤러리가 실행 중이지만 특정 갤러리의 특정 사진에 클라이언트를 연결할 수 있기를 원합니다. 나는 그것이 가능하다는 것을 알고 있기 때문에 어떻게 코딩 할 것인가? Flash CS3 및 AS3을 사용하고 있습니다.액션 스크립트 3 - 갤러리의 이미지에 대한 고유 URL

+0

자세한 내용을 제공해 주시겠습니까? – PatrickS

답변

2

SWFAddress 라이브러리를 사용할 수 있습니다.

0

각 이미지에 사용할 클래스를 만들 수 있습니다.이 클래스에는 url 속성이 있지만 달성하려는 대상에 따라 갤러리 & 클라이언트 속성이있을 수도 있습니다.

XML에서 데이터를 읽을 때 XML 데이터에서 직접 개체를 만드는 경향이 있습니다.

는 예를 들어 당신이 필요로하는 그런 다음 배열에 이미지 개체를 저장하고 조작 할 수 있습니다이

 
images 
    image 
     ID   1         /ID 
    url  http://example.com/images/img1.jpg /url 
    client  John Smith       /client 
     clientURL http://clientSite.com/    /clientURL 
    galleryID 6         /galleryID 
    /image 
    etc... 
/images 
 
var imageData:XMLList = xml..images; 

//then I use a "for" loop to iterate thru imageData , inside the "for" loop I would have 
var image:Image = new Image(); 

//the return values are XMLList so they need to be coerced 
image.imageURL = String(imageData[i].url); 
image.clientURL = String(imageData[i].clientURL); 
etc... 

같은 XML 노드에서 내 이미지 객체를 얻을 것입니다. Image 클래스는 Sprite를 확장하므로로드 된 비트 맵을 해당 객체에 추가하는 것을 고려할 수 있습니다. 이미지 클래스에서

 
    //if you're using a for loop 
    var image:Image = imagesArray[i] as Image; 
    loader.name = i.toString(); 
    loader.load(new URLRequest(image.imageURL)); 

    function completeHandler(event:MouseEvent):void 
    { 
    var index:int = int(event.currentTarget.loader.name); 
    var image:Image = imagesArray[index] as Image; 
    image.addChild(event.currentTarget.loader.content); 
    } 

, 경우 navigateToURL을 전화로, MouseEvent 리스너를 추가하고 사용자가 이미지를 클릭하면 그녀는 특정 이미지 URL로 리디렉션됩니다

 
private function mouseClickHandler(event:MouseEvent):void 
{ 
    navigateToURL(new URLRequest(_clientURL)); 
} 

여기에 기본 예제입니다 :

 
package 
{ 
    import flash.display.Sprite; 

    public class Image extends Sprite 
    { 
     private var _client:String; 
     private var _galleryID:int; 
     private var _galleryName:String; 
     private var _imageID:int; 
     private var _imageURL:String; 


     public function Image() 
     { 
     } 

     public function get imageURL():String 
     { 
      return _imageURL; 
     } 

     public function set imageURL(value:String):void 
     { 
      _imageURL = value; 
     } 

     public function get imageID():int 
     { 
      return _imageID; 
     } 

     public function set imageID(value:int):void 
     { 
      _imageID = value; 
     } 

     public function get galleryName():String 
     { 
      return _galleryName; 
     } 

     public function set galleryName(value:String):void 
     { 
      _galleryName = value; 
     } 

     public function get galleryID():int 
     { 
      return _galleryID; 
     } 

     public function set galleryID(value:int):void 
     { 
      _galleryID = value; 
     } 

     public function get client():String 
     { 
      return _client; 
     } 

     public function set client(value:String):void 
     { 
      _client = value; 
     } 

    } 
} 
+0

이것은 솔루션에 가장 가까운 ive이지만 XML 파일로 갤러리를 채우는 것을 잊어 버렸습니다. 이제 그림이 XML 파일에있는 위치를 기반으로 URL을 관리하는 루프를 만드는 방법이 있지만 확실하지는 않습니다. – Mitchell

+0

수정 된 코드를 확인하십시오 ... 모든 코드 줄을 추가하지 않았지만 공백을 느낄 수 있어야합니다. – PatrickS

0

여기에 복잡한 작업을 할 필요가 없습니다 ... 이미지를 식별하는 URL에 매개 변수를 추가하기 만하면됩니다. Javascript를 통해 FlashVars에 매개 변수를 전달하거나 swf에 직접 링크하여 Application.application.url을 통해 해당 URL을 읽을 수 있습니다. 매개 변수를 읽은 후 swf (또는 매개 변수가없는 경우 기본보기)에서 해당 이미지를 표시 할 수 있습니다.

관련 문제