我目前正在网站上工作并启动并运行Flash库,但希望能够将客户端链接到特定图库中的特定照片。我将如何编写这个,因为我知道这是可能的,但我无法弄清楚如何。我正在使用Flash CS3和AS3。
答案 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中显示相应的图像(如果缺少参数,则显示默认视图)。