4

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

我有这个代码在这里打开一个新链接

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

我如何让它在新窗口中打开大小?

谢谢,J

4

3 回答 3

11

我认为添加_blanknavigateToURL将打开一个新窗口(请参阅文档):

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");
}
于 2013-02-01T22:01:11.203 回答
3

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

navigateToURL( request, "_blank" );

请参阅navigateToURL()LiveDocs。

您还应该注意,在 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 使用松散的数据类型,其中对象采用其值的数据类型。

于 2013-02-01T22:03:10.030 回答
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' );
    }
}

另外,我应该提到,这可能仅在您从网络服务器上运行时才有效。这可以是本地主机或远程网络服务器。这与 Flash 安全模型有关。有关宽度、高度等选项,请查看https://developer.mozilla.org/en-US/docs/DOM/window.open

于 2013-02-20T13:38:19.640 回答