我有兴趣使用Adobe Air制作一个Twitter客户端,但我现在有点困难,因为我无法想出一个更好的方法来连接到twitter REST API,因为它需要身份验证.
目前,客户端使用GET变量中的twitter用户名/密码(未加密)向我的服务器(使用curl的php脚本)发送请求.然后,服务器使用这些凭证向twitter发出请求并输出缓冲区,然后将缓冲区发送回客户端,然后客户端处理/显示它.
这显然是一个可怕的安全漏洞,所以有人知道更好(更安全)的方式吗?
仅供参考:我正在使用jQuery.
我正在试图找出保护我的(基于文件的)SQLite数据库免受损坏的最安全的策略(在这种情况下,我正在使用Adobe Air,但这适用于任何使用SQLite的webkit浏览器,包括移动Safari).
我正在考虑创建一个数据库连接,保持它只有5或10秒,然后关闭它,如果它在那段时间没有被使用.我的想法是,如果机器崩溃或应用程序异常退出,那么文件已经关闭并因此不太可能被破坏的可能性很大.但我知道,打开和关闭基于文件的数据库的频率越高,就越有可能出现严重错误.
我确定我过度思考这个问题,但对于我的应用程序来说,关键是在系统崩溃的情况下,应用程序可以快速,快速地恢复,这意味着我必须尽可能多地保护数据库. .
有谁知道哪种策略可能更安全?
我刚开始使用Google Maps API for Flash(map_1_20.swc)为我正在使用Flash CS5构建的AIR 2.5应用程序.一切都加载并在ADL中显示正常,除了我收到安全沙箱违规:
*** Security Sandbox Violation ***
SecurityDomain 'http://maps.googleapis.com/mapsapi/publicapi?
file=flashapi&url=http%3A%2F%2FgMyDomainName.com&key=ABQIAAAAKlbBGDLCUgZLtxxJ6-
Hi9RQ7KOBhSjQi3kzVUu2XaSyicmBCGxQz68ixtUMxnYSMDFuMNT0cJYPwjQ&sensor=false&v=1.20&fl
pub=&flh=17e8cb187dcf0488fac63df6b16432b7592443ee&flc=at&flcl=a0g30ufvvrvvtvvbo03'
tried to access incompatible context 'app:/MapTest.swf'
//MyDomainName.com represents my domain registered with the API key
Run Code Online (Sandbox Code Playgroud)
当鼠标进入或退出infoWindow时,抛出安全沙箱违规.
这是我的文档类代码
package
{
import com.google.maps.LatLng;
import com.google.maps.InfoWindowOptions;
import com.google.maps.Map;
import com.google.maps.MapEvent;
import com.google.maps.MapType;
import flash.display.Sprite;
import flash.events.Event;
public class MapTest extends Sprite
{
public function MapTest()
{
addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(evt:Event):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
var map:Map = new Map();
map.key = "ABQIAAAAKlbBGDLCUgZLtxxJ6-Hi9RQ7KOBhSjQi3kzVUu2XaSyicmBCGxQz68ixtUMxnYSMDFuMNT0cJYPwjQ";
map.url = "http://MyDomainName.com"; …Run Code Online (Sandbox Code Playgroud) 我想问一下air.File.documentsDirectory.resolvePath,File.userDirectory.resolvePath,air.File.applicationDirectory.resolvePath之间的区别.
任何人都可以解释文件何时存储.....
特别是在窗户
我们如何在启动另一个AIR类型的应用程序时从Java Activity传递参数?
我们为java活动做的方式是使用Intent的额外功能.Android上的java Activity和AIR app是什么参数传递机制.目前我们通过共享一个公共位置(sqlite db)并每秒轮询它来传递参数.这不是一个好的设计,我相信必须有一些好的方法来做到这一点.请赐教.
Adobe告诉我们不要在移动设备上使用Datagrid.我正在创建一个Blackberry Playbook应用程序,它有更多的屏幕空间可能显示数据表.所以出现了一些问题!
如果我不应该使用DataGrid,我应该使用什么?(List不算数,因为在我的应用程序中我有10个表,每个表都有不同的列数和列宽)
好吧,如果我必须使用Datagrid,我如何设置它的大小以准确显示所有数据?例如,某些表具有不同长度的行,因此requestedRowCount =' - 1'似乎不起作用(参见下面的示例)
代码
<s:DataGrid requestedRowCount="-1" requestedColumnCount="-1" variableRowHeight="true" styleName="dataGrid" id="partiesGrid" dataProvider="{arr1}" skinClass="skins.DataGridSkin" click="navigator.pushView(view.AssessmentInvolvementEditView)">
<s:columns>
<s:ArrayList>
<s:GridColumn dataField="name" headerText="Name" width="150"/>
<s:GridColumn dataField="role" headerText="Role" width="150"/>
<s:GridColumn dataField="startdate" headerText="Start" width="100"/>
<s:GridColumn dataField="enddate" headerText="End" width="100"/>
<s:GridColumn dataField="presponsibility" headerText="Response" width="150"/>
<s:GridColumn dataField="pcarer" headerText="Carer" width="110"/>
<s:GridColumn dataField="kworker" headerText="Worker" width="110"/>
<s:GridColumn dataField="kteam" headerText="Team" width="110"/>
</s:ArrayList>
</s:columns>
</s:DataGrid>`
Run Code Online (Sandbox Code Playgroud)
结果(注意高度不适合3行,它在底部增加了空间)!
我正在制作一个AIR项目,它需要一些OCR功能,所以我决定使用tesseract(现在我试着让它在Windows上工作).
我的问题是,它无法改变语言文件的位置 - 它总是试图查看我的Tesseract安装目录(程序文件(x86)\ Tesseract-OCR\tessdata\mylang.traineddata)
有没有办法可以配置Tesseract来查找我指定的文件?例如,与tesseract.exe在同一文件夹中.我不希望(或者可能是事件不能)使用AIR安装程序安装应用程序.我已经尝试过3.0版本和最新的SVN版本.
谢谢
所有的Flash游戏都可以轻松移植到adobe air上以便在ios上进行部署吗?例如,如果我在AS3中开发2D平台游戏,我是否可以使用Adobe AIR重新打包以在iOS上进行部署,而无需修改代码库?
如果可能,我该怎么做?只需使用AIR SDK的ADT工具重新打包?
在我的游戏中,我使用鼠标和键盘来控制角色...英雄跟随鼠标光标并左键点击......如何转换为触摸?
我是AIR的新手,还没有iPhone.但我很想知道可能性.
任何帮助/提示/建议将不胜感激.
我完全不熟悉Android SDK的开发.我正在尝试从AIR的原生扩展(在Android上)启动Adobe Reader.
这是我做的(我按照本教程:http://www.adobe.com/devnet/air/articles/extending-air.html).
我有一个控制器:
package com.tokom.adobereader
{
import com.tokom.adobereader.events.AdobeReaderEvent;
import flash.events.EventDispatcher;
import flash.events.StatusEvent;
import flash.external.ExtensionContext;
/**
* A controller used to interact with the system volume on iOS and
* Android devices. Ways to change the volume programmatically
* and to respond to the hardware volume buttons are included.
*
* @author Nathan Weber
*/
public class AdobeReaderController extends EventDispatcher
{
//----------------------------------------
//
// Variables
//
//----------------------------------------
private static var _instance:AdobeReaderController;
private var extContext:ExtensionContext;
//---------------------------------------- …Run Code Online (Sandbox Code Playgroud) 我一直在尝试从Flash Builder导出发布版本,我收到错误:
错误消息是:
创建AIR文件时出错:无法生成时间戳:握手期间远程主机关闭连接
更新:
我发现这篇文章,并说它使用https://timestamp.geotrust.com/tsa来获取时间戳.我在浏览器中访问了此URL并收到了404 - 未找到的页面.
更新2:
看起来时间戳网站已经停止了几天.
更新3:
看起来geotrust切换到打破Flash Builder的TLS 1.2.这是Adobe的回应在这里:
感谢您报告此问题.我们调查并发现timestamp.geotrust.com最近禁用了TLS 1.0(请参阅http://downornotworking.com/timestamp.geotrust.com/上的评论 ),因此请尝试在您的ADT机器上升级到Java 1.8(a AIR SDK中的组件(基于Java)打包.
好.我在这里读到Flash Builder和Java 1.8存在兼容性问题.我是否安装了Java 1.8?如何使用Flash Builder完成此操作?
我在Mac OS X 10.11上运行Flash Builder 4.7
air ×10
android ×2
apache-flex ×2
flash ×2
javascript ×2
actionscript ×1
adobe ×1
c++ ×1
file-io ×1
google-maps ×1
jquery ×1
location ×1
native ×1
ocr ×1
pdf ×1
php ×1
sqlite ×1
storage ×1
tesseract ×1
webkit ×1