加载动作脚本的问题

时间:2010-07-08 08:31:22

标签: actionscript-3 flash-cs4

我可以在actionscript-3中执行以下操作吗? :
   我想通过将URLRequests创建到本地文件夹来创建一个使用Loader加载一些图像的应用程序。我可以构建应用程序并以某种方式包含此文件夹,因此当我从服务器发送到客户端时,URLRequests在客户端正常运行吗?此外,如果可能,客户端可能无法查看/访问该文件夹,但只能从其附带的Flash应用程序访问该文件夹?  因此,例如,如果我将它发送到客户端,那么在本地运行到我的机器上的这段代码将继续运行到它的机器。可以以某种方式将文件夹和SWF作为一个对象发送?

private function clothesOn( outfit:String ) {
   var clothier:Loader = new Loader();
   var item:String = "clothes/" + outfit + ".gif";
   var getItem:URLRequest = new URLRequest( item );
   clothier.load( getItem );
   this.addChild( clothier );
}

ps:取自actionscript设计模式的代码。

1 个答案:

答案 0 :(得分:1)

除非将文件作为库资源添加到Flash文件本身,否则无法将文件发送到客户端。 但是,如果文件夹在服务器上的位置与本地计算机上的相同位置相同,并且您指示flash文件创建相对于自身的所有路径(使用base:'。'param),则flash文件应该能够找到您的图像文件,而无需先将它们发送到客户端。

基础参数是您在页面中嵌入Flash文件时可以指定的值。见这里:

http://kb2.adobe.com/cps/127/tn_12701.html

使用SWFObject,代码看起来像这样:

<script type="text/javascript">
    var params = {
        menu: "false",
        scale: "noScale",
        allowFullscreen: "true",
        allowScriptAccess: "always",
        bgcolor: "#FFFFFF",
        base:'.'
    };
    swfobject.embedSWF("file.swf", "divID", "706", "706", "9.0.0", "swf/expressInstall.swf", null, params, null);
</script>

设置该参数后,Flash文件中的网址将相对于文件本身的位置。假设您的服务器上有这样的结构:

-root
  -index.html
  -file.swf
  -folder
    -img1.jpg
    -img2.jpg

'folder/img1.jpg'这样的网址将被flash文件加载。