as3 打开窗口类
package FlashCode.utils{
import flash.display.Sprite;
import flash.net.URLRequest;
import flash.net.navigateToURL;
import flash.external.ExternalInterface;
public class openWindow {
public function openWindow(url:String, window:String="_blank", features:String=""){
var WINDOW_OPEN_FUNCTION:String = "window.open";
var myURL:URLRequest = new URLRequest(url);
var browserName:String = getBrowserName();
if(getBrowserName() == "Firefox"){
ExternalInterface.call(WINDOW_OPEN_FUNCTION, url, window, features);
}
//If IE,
else if(browserName == "IE"){
ExternalInterface.call(WINDOW_OPEN_FUNCTION, url, window, features);
//ExternalInterface.call("function setWMWindow() {window.open('" + url + "');}");
}
//If Safari
else if(browserName == "Safari"){
navigateToURL(myURL, window);
}
//If Opera
else if(browserName == "Opera"){
navigateToURL(myURL, window);
} else {
navigateToURL(myURL, window);
}
/*Alternate methodology...
var popSuccess:Boolean = ExternalInterface.call(WINDOW_OPEN_FUNCTION, url, window, features);
if(popSuccess == false){
navigateToURL(myURL, window);
}*/
}
private function getBrowserName():String{
var browser:String;
//Uses external interface to reach out to browser and grab browser useragent info.
var browserAgent:String = ExternalInterface.call("function getBrowser(){return navigator.userAgent;}");
// Debug.text += "Browser Info: [" + browserAgent + "]";
//Determines brand of browser using a find index. If not found indexOf returns (-1).
if(browserAgent != null && browserAgent.indexOf("Firefox") >= 0) {
browser = "Firefox";
}
else if(browserAgent != null && browserAgent.indexOf("Safari") >= 0){
browser = "Safari";
}
else if(browserAgent != null && browserAgent.indexOf("MSIE") >= 0){
browser = "IE";
}
else if(browserAgent != null && browserAgent.indexOf("Opera") >= 0){
browser = "Opera";
}
else {
browser = "Undefined";
}
return browser;
}
}
}
在as2的时代,只有onRelease下的getURL才会被认为是一次完整的点击,onPress就会被拦截
到了navigateToURL的时代,即便你监听一个MouseEvent.CLICK事件,他也会被拦截,原因我现在也不知道,谁知道的话可以跟帖
那么怎么解决as3弹出一个_blank不被拦截呢,3个条件
1.判断浏览器的版本,如果是firefox和其他什么opera啥的就直接navigateToURL,如果是IE的话就调用window.open
2.必须监听MouseEvent.CLICK事件,如果是MouseEvent.DOWN啥的我就不敢保证了
3.wmode属性必须设置成opaque,Transparent的话我没试过,大家可以试试,反正window肯定不行
这3个条件满足了,才能保证弹出的新页面不被拦截!!!!!!!!!!
as3 打开窗口类的更多相关文章
- VC/MFC程序开启关闭和打开自己或其他软件,更改窗口类
一. 关闭自身软件 直接在需要关闭的位置输入 HANDLE hself = GetCurrentProcess(); TerminateProcess(hself, 0); 二.关闭其他软件 流程: ...
- MFC注册窗口类以及FindWindow按窗口类名查询
很多玩游戏的人都知道一般游戏客户端程序是不允许双开的,就是说在同一游戏在启动的时候,是无法打开多个窗口.很多其他软件如酷狗播放器等也是这样.如果把打开的窗口最小化,这时重新启动程序,最小化的窗口会被显 ...
- WPF 使用Caliburn.Micro 多线程打开窗口
我们都知道在WPF里面用多线程打开一个窗口很简单.如下 public void ClickMe(object sender) { Thread newWindowThread = new Thread ...
- 通用窗口类 Inventory Pro 2.1.2 Demo1(下续篇 ),物品消耗扇形显示功能
本篇想总结的是Inventory Pro中通用窗口的具体实现,但还是要强调下该插件的重点还是装备系统而不是通用窗口系统,所以这里提到的通用窗口类其实是通用装备窗口类(其实该插件中也有非装备窗口比如No ...
- 通用窗口类 Inventory Pro 2.1.2 Demo1(下)
本篇想总结的是Inventory Pro中通用窗口的具体实现,但还是要强调下该插件的重点还是装备系统而不是通用窗口系统,所以这里提到的通用窗口类其实是通用装备窗口类(其实该插件中也有非装备窗口比如No ...
- 通用窗口类 Inventory Pro 2.1.2 Demo1(中)
本篇想总结的是Inventory Pro中通用窗口的具体实现,但还是要强调下该插件的重点还是装备系统而不是通用窗口系统,所以这里提到的通用窗口类其实是通用装备窗口类(其实该插件中也有非装备窗口比如No ...
- 探索Win32系统之窗口类(转载)
Window Classes in Win32 摘要 本文主要介绍win32系统里窗口类的运做和使用机制,探索一些细节问题,使win32窗口类的信息更加明朗化. 在本文中,"类", ...
- window.open新打开窗口与新开标签页
最近在使用window.open时忽略了一个细节问题:window.open新打开一个窗口,但是有时却是新打开一个窗口有时打开一个新标签页.虽然对一般的需求来说,这个两种情况都无所谓,但是对于那种有强 ...
- MFC注册窗口类以及FindWindow按窗口类名查询(避免用#32770获取窗口句柄)
呵呵,最近在研究SendMessage函数,其中需要用到m_hWnd,之后延伸着又尝试获得窗口的句柄,于是遇到了FindWindow函数,原型如下: HWND FindWindow ( LPCSTR ...
随机推荐
- Android 联系人信息的读取注意判断是否为NULL Android联系人的删除实质
在Android系统联系人界面删除一条短信实际上并不是真正的删除,而是在数据库中标记raw_contacts表中Contact_id为null以及data表中raw_contact_id为空,这是为了 ...
- 【网络流24题】No. 13 星际转移问题 (网络判定 最大流)
[题意] 由于人类对自然资源的消耗, 人们意识到大约在 2300 年之后, 地球就不能再居住了.于是在月球上建立了新的绿地,以便在需要时移民. 令人意想不到的是, 2177 年冬由于未知的原因, 地球 ...
- Xamarin 开发常见问题
原文:Xamarin 开发常见问题 Verify the project is selected to be deployed in the Solution Configuration Manage ...
- php中header函数后是否应该有exit
通常有一下三种: 代码如下 复制代码 Location: xxxx:yyyy/zzzz Content-Type: xxxx/yyyy Status: nnn xxxxxx 常用实例 1.实现重定向 ...
- IT传道解惑:心累了就读读
写在开始 学习不是因为缺少时间而是缺少努力 Studies this matter, lacks the time, but is lacks diligently. 只要你想学好,用心去学,肯下功夫 ...
- IPVS实现分析
IPVS实现分析 IPVS实现分析 根据LVS官方网站的介绍,LVS支持三种负载均衡模式:NAT,tunnel和direct routing(DR). NAT是通用模式,所有交互数据必须通过均衡器:后 ...
- 编程实现改变win7主题
一 : 解析问题 1. Windows 7 主题在:%windir%\Resources\Themes : 2: 我们通过shell 命令 (这个是msdn中提到的) rundll32.exe ...
- POJ_3176_Cow_Bowling_(数字三角形)_(动态规划)
描述 http://poj.org/problem?id=3176 给出一个三角形,每个点可以走到它下面两个点,将所有经过的点的值加起来,问最大的和是多少. Cow Bowling Time Limi ...
- 数学类杂志SCI2013-2014影响因子
ISSN Abbreviated Journal Title Full Title Category Subcategory Country total Cites IF 2013-20 ...
- Leveraging the Power of Asynchrony in ASP.NET [转]
Asynchronous programming has had a lot of attention in the last couple of years and there are two ke ...