AIR笔记 使用HTML
2011年05月17日
air2.5的webkit
c++ singleton实现
flash 2011-02-25 16:25:15 阅读40 评论0 字号:大中小 订阅
来自:http://www.ebibi.com/i/experience/2010/0707/263.html
1. 使用flash.html.HTMLLoader读入HTML内容,
load()读入页面等资源, loadString()读入一个HTML串
2. 如果系统上安装了Acrobat Reader 8.1 以上的插件, 则可以用同样的方法加载和呈现PDF了.
可以用 HTMLLoader.pdfCapability 属性判断PDF特性是否可用, 返回四种值:
STATUS_OK(可用) 三种ERROR(没安装, 安装版本过旧, 优先使用版本过旧)
3. 在Flex工程中, 可以使用 来取代HTMLLoader
指定location属性, 可以使HTML组件自动加载并呈现内容
HTML组件并不直接支持 loadString()
但可以通过其 htmlLoader 属性, 获得其包装的HTMLLoader对象, 间接实现
4. 如果不想缓存内容, 应该在 load() 之前设置 HTMLLoader对象的 cacheResponse = false
如果不想优先读取本地缓存, 在 load() 之前设置 useCache = false
5. 如果碰到需要身份验证的站点, AIR默认会弹出 用户名/密码 对话框
如果想禁止弹出, 设置 authenticate = false, 但这样会导致服务器返回错误
6. 可以设置 userAgent 属性以实现ua欺骗
7. 设置 manageCookies = false 可以禁止在本地存储cookie
8. 如果不想针对每个 HTMLLoader 实例设置上述属性,
可以用 URLRequestDefaults类的静态方法统一设置
9. 内容超出范围的情况下, 在 控件中, 使用flex内置的 …Policy 属性即可调节滚动条
10. 使用as时, 监听HTMLLoader的complete事件, 而后即可获知contentWidth和contentHeight属性
使用scrollH和scrollV属性可以控制内容向右和向下的移动值
11. var hl:HTMLLoader = HTMLLoader.createRootWindow([可选的参数]);
hl.load(…);
这样将把加载的内容放到一个AIR窗口中, 并且该窗口可以自动添加滚动条
12. 使用 HTMLHistoryItem 对象来保存浏览历史, 包括以下属性
url -> 页面的url
originalUrl -> 初始url(可能的跳转之前)
title -> 页面的title
isPost -> 是否包含post数据
HTMLLoader对象的属性 historyLength 指示了历史项目的数量
用 getHistoryAt() 返回对应的 HTMLHistoryItem 对象
也可以使用 HTMLLoader对象的 historyBack(), historyForward(), historyGo() 实现导航
13. AIR并不仅仅能加载和呈现HTML, 因为HTMLLoader暴露了所加载HTML内容的全部DOM,
所以可以与其交互, 但需要等待内容加载完
HTMLLoader对象的window 对应了 HTML内容中js的window对象,
可以直接读取其属性或调用其方法等
如果把一个function赋值到一个js方法上, 会替换该方法的动作
_htmlLoader.window.xxx = function():void { trace(”xxx”); };
可以用和js类似的方法操作DOM
_htmlLoader.window.document.getElementById(”p1″).innerTEXT = “xxx”;
14. 有两种方法可以注册对js方法的监听: 在HTML元素的事件属性上赋值 以及 使用addEventListener()
比如 _htmlLoader.window.document.getElementById(”p1″).onclick = clickHandler;
或 _htmlLoader.window.document.getElementById(”p1″).addEventListener(”click”, clickHandler);
处理函数接受一个类型为 Object 的事件对象, 包含了 target 和 currentTarget属性
private function clickHandler(evt:Object):void { trace(”click”); }
15. 可以通过继承 HTMLHost 类来实现对 Window.status Window.focus() 等属性和方法的定义
并指定到HTMLLoader对象的htmlHost属性上
16. 在所加载HTML的js中, 可以使用 window.runtime 来调用一切 Flash Player APIs
比如 window.runtime.trace()
window.runtime.flash.desktop.NativeApplication.nativeApplication.openedWindows[0]
如果要在js中调用自定义的类型, 需要将HTML内容加载到same ApplicationDomain
_htmlLoader.runtimeApplictionDomain = ApplicationDomain.currentDomain;
17. 所有加载到AIR中的HTML内容都有sandbox限制
从 application目录或子目录加载的, 为 application sandbox
从其他地方加载的, 为 noapplication sandbox
application sandbox 中禁止的操作有:
1). eval()只能用于字面量和常量
2). setTimeout()和setInterval()只能调用字面量的方法, 不能执行字符串
3). innerTEXT和innerHTML中不能包含script
4). 不能使用 ‘javascript’ 关键字作为URI配置
5). 不能载入application domain之外的外部js文件
这些限制尽量屏蔽了恶意的js代码, 保证application domain中的js相对安全的获得包括本地文件操作在内的AIR API
外部载入的js没有以上限制, 但虽然它可以不受控制的执行eval(), 却是没有访问本地文件系统权限的
18. 当绝对需要时, 也可以使用 sandbox bridging 技术
一种跨域脚本访问方法, 在noapplication sandbox中的内容与其在application sandbox中的父文档直接创建沙箱桥接口
发表评论
-
关于动态贴图问题不能动态通过texture改变只能重新new 新material
2012-01-20 01:48 1637关于动态贴图问题不能动态通过texture改变只能重新new ... -
Flex学习收藏资料
2012-01-20 01:48 639Flex学习收藏资料 2010年09月16日 1、《Fl ... -
papervision3d学习笔记:图片墙(1)
2012-01-20 01:48 743papervision3d学习笔记:图片墙(1) 2010年 ... -
[AS3] Alternavta3d7.5教程(一)
2012-01-20 01:48 795[AS3] Alternavta3d7.5教程(一 ... -
广州工作2个月!差人的公司可以call我
2012-01-20 01:48 731广州工作2个月!差人的公司可以call我 2011年06月3 ... -
民国小学生的一篇作文
2012-01-19 09:35 689民国小学生的一篇作文 ... -
小学生作文能力的培养
2012-01-19 09:35 497小学生作文能力的培养 ... -
教小学生写作文1
2012-01-19 09:35 969教小学生写作文1 2011年09月09日 一、小学作文教 ... -
小学生期末评语
2012-01-19 09:35 525小学生期末评语 2010年0 ... -
小学生操行评语
2012-01-19 09:35 658小学生操行评语 2011年0 ... -
神机也有软肋 小米手机
2012-01-17 02:10 676神机也有软肋 小米手机 2011年09月11日 小米手机 ... -
Android中的3D相册
2012-01-17 02:10 1071Android中的3D相册 2011年11月28日 ... -
3D显卡
2012-01-17 02:10 5513D显卡 2011年08月30日 3D 显卡技术术语目前 ... -
揭开Wayland的面纱(一):X Window的前生今世
2012-01-17 02:10 764揭开Wayland的面纱(一):X W ... -
VLC各模块名称及功能介绍
2012-01-17 02:10 900VLC各模块名称及功能介绍 2010年10月28日 [3 ... -
在flex页面中安装AIR程序
2012-01-15 21:42 823在flex页面中安装AIR程序 2010年07月17日 ... -
SWF与SWF交互
2012-01-15 21:42 586SWF与SWF交互 2010年07月23日 在AS2里S ... -
利用反射调用另一个swf里的代码库
2012-01-15 21:42 582利用反射调用另一个swf里的代码库 2011年02月19日 ... -
Flex Module 终极减肥篇之去掉最后哪一点赘肉
2012-01-15 21:42 597Flex Module 终极减肥篇之 ...
相关推荐
python学习资源
jfinal-undertow 用于开发、部署由 jfinal 开发的 web 项目
基于Andorid的音乐播放器项目设计(国外开源)实现源码,主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。
python学习资源
python学习资源
python学习一些项目和资源
【毕业设计】java-springboot+vue家具销售平台实现源码(完整前后端+mysql+说明文档+LunW).zip
HTML+CSS+JavaScarip开发的前端网页源代码
python学习资源
【毕业设计】java-springboot-vue健身房信息管理系统源码(完整前后端+mysql+说明文档+LunW).zip
成绩管理系统C/Go。大学生期末小作业,指针实现,C语言版本(ANSI C)和Go语言版本
1_基于大数据的智能菜品个性化推荐与点餐系统的设计与实现.docx
【毕业设计】java-springboot-vue交流互动平台实现源码(完整前后端+mysql+说明文档+LunW).zip
内容概要:本文主要探讨了在高并发情况下如何设计并优化火车票秒杀系统,确保系统的高性能与稳定性。通过对比分析三种库存管理模式(下单减库存、支付减库存、预扣库存),强调了预扣库存结合本地缓存及远程Redis统一库存的优势,同时介绍了如何利用Nginx的加权轮询策略、MQ消息队列异步处理等方式降低系统压力,保障交易完整性和数据一致性,防止超卖现象。 适用人群:具有一定互联网应用开发经验的研发人员和技术管理人员。 使用场景及目标:适用于电商、票务等行业需要处理大量瞬时并发请求的业务场景。其目标在于通过合理的架构规划,实现在高峰期保持平台的稳定运行,保证用户体验的同时最大化销售额。 其他说明:文中提及的技术细节如Epoll I/O多路复用模型以及分布式系统中的容错措施等内容,对于深入理解大规模并发系统的构建有着重要指导意义。
基于 OpenCV 和 PyTorch 的深度车牌识别
【毕业设计-java】springboot-vue教学资料管理系统实现源码(完整前后端+mysql+说明文档+LunW).zip
此数据集包含有关出租车行程的详细信息,包括乘客人数、行程距离、付款类型、车费金额和行程时长。它可用于各种数据分析和机器学习应用程序,例如票价预测和乘车模式分析。
把代码放到Word中,通过开发工具——Visual Basic——插入模块,粘贴在里在,把在硅基流动中申请的API放到VBA代码中。在Word中,选择一个问题,运行这个DeepSeekV3的宏就可以实现在线问答
【毕业设计】java-springboot+vue机动车号牌管理系统实现源码(完整前后端+mysql+说明文档+LunW).zip
【毕业设计】java-springboot-vue交通管理在线服务系统的开发源码(完整前后端+mysql+说明文档+LunW).zip