Actionscript 3在新窗口中打开

时间:2013-02-01 21:43:04

标签: actionscript-3 flash

我是Actionscript的新手,当我说新的时,我的意思是昨天......

我这里的代码打开了一个新链接

myButton.addEventListener(MouseEvent.CLICK,goThere);
function goThere(e:MouseEvent){
    var request = new URLRequest("http://www.jamessuske.com/freelance/korkis/3DLibrary.php");
    navigateToURL(request);
}

如何在尺寸较小的新窗口中打开它?

谢谢, Ĵ

3 个答案:

答案 0 :(得分:11)

我认为将_blank添加到navigateToURL会打开一个新窗口(请参阅docs):

function goThere(e:MouseEvent):void
{
    var request = new URLRequest("http://www.jamessuske.com/freelance/korkis/3DLibrary.php");
    navigateToURL(request, "_blank");
}
myButton.addEventListener(MouseEvent.CLICK, goThere);

关于调整窗口......我认为不可能(但是,嘿,有人可以证明我错了;)

修改

好的,也许你也可以使用ExternalInterface来调整大小(最后看一下例子)(未经测试):

编辑你的嵌入式HTML: 添加

<param name="allowScriptAccess" value="always" />

嵌入HTML 并在 AS3 代码的开头添加以下调用:

flash.system.Security.allowDomain("*")

然后以下代码应该有效:

function goThere(e:MouseEvent):void
{
    ExternalInterface.call("open", "http://www.jamessuske.com/freelance/korkis/3DLibrary.php", "_blank", "width=300,height=400,left=100,top=200");
}

答案 1 :(得分:3)

我不相信您可以控制新窗口大小,但您可以使用target属性在新窗口中打开它。

navigateToURL( request, "_blank" );

请参阅LiveDocs上的navigateToURL()

您还应注意,在AS3中,必须始终包含您创建的每个对象的数据类型。

function goThere(e:MouseEvent):void {
    var request:URLRequest = new URLRequest("http://www.jamessuske.com/freelance/korkis/3DLibrary.php");
    navigateToURL(request);
}

在变量声明之后以及函数声明之后注意“:DATATYPE”。我不相信Flash Pro会向您指出这一点,但您创建的每个对象都必须进行数据类型化。 AS3(以及Java和大多数基于C的语言)使用严格的数据类型,而Javascript,PHP和AS2使用松散的数据类型,其中对象采用其值的数据类型。

答案 2 :(得分:1)

Warappa的代码有效,但可能缺少初级AS开发人员所需的一些额外信息。希望评论和完整代码能让它适合您。

// This makes the ExternalInterface class available
import flash.external.ExternalInterface;

myButton.addEventListener(MouseEvent.CLICK, goThere);
function goThere(e:MouseEvent)
{
    // Store the URL as a variable for readability
    var url : String = "http://www.jamessuske.com/freelance/korkis/3DLibrary.php";

    // Check if we have access to the External interface (are we running in a browser?)
    if (ExternalInterface.available) {
        ExternalInterface.call('window.open', url, '', 'width=400,height=300' );
    }
}

此外,我应该提一下,这可能只有在您从网络服务器上运行时才有效。这可以是localhost或远程Web服务器。这与Flash Security模型有关。有关宽度,高度等选项,请查看https://developer.mozilla.org/en-US/docs/DOM/window.open