操作脚本3 - 库中图像的唯一URL

时间:2010-08-23 19:08:17

标签: flash actionscript-3

我目前正在网站上工作并启动并运行Flash库,但希望能够将客户端链接到特定图库中的特定照片。我将如何编写这个,因为我知道这是可能的,但我无法弄清楚如何。我正在使用Flash CS3和AS3。

3 个答案:

答案 0 :(得分:2)

您可以使用SWFAddress库。

答案 1 :(得分: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...

然后,您可以将Image对象存储在数组中,并根据需要对其进行操作。 由于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 );
   } 

在Image类中,添加一个MouseEvent侦听器来调用navigateToURL,如果用户单击该图像,她将被重定向到特定于图像的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;
        }

    }
}

答案 2 :(得分:0)

这里不需要做任何复杂的事情...... 只需在URL标识图像中添加参数即可。您可以通过Javascript将该参数传递给FlashVars,也可以直接链接到swf并通过Application.application.url读取其URL。读取参数后,可以在swf中显示相应的图像(如果缺少参数,则显示默认视图)。