我有一个脚本,通过Ajax调用从远程服务器检索对象.服务器以JSON表示法返回对象.
但是,在Adobe AIR中,出于安全原因,使用eval()存在限制.所以我能够从远程服务器获得回复,但不能将它们变回JavaScript对象.这个问题有解决方法吗?我想将JSON用于我的JavaScript对象,因为它几乎可以立即使用.
旁注:我确实理解强制问题的安全隐患,但我会为竞争做一些快速的应用程序开发,因此该程序只是一个快速的原型,而不是用于生产目的.尽管如此,如果有一个比我现在想要做的更好的替代方案,那将会很棒
更新:
我今天学到的一件重要事情是,我实际上可以通过使用它来使用ActionScript库
<script src="lib/myClasses.swf" type="application/x-shockwave-flash"></script>由Adobe AIR扩展的标记.查看Theo的链接了解更多详情!
是否可以通过Adobe AIR/Flex应用程序直接访问MySql数据库?
如果没有,那么下一个最佳选择是什么?
将控件的位置设置为某个站点后.那我怎么能看看相关的HTML呢?我注意到,一旦我设置了Location,htmlText就会变为null,反之亦然......那么如何用TEXT格式查看控件中显示的HTML呢?
我试图使用这个类导出透明的 PNG文件:com.adobe.images.PNGEncoder;
var pngSource:BitmapData = new BitmapData (stage.stageWidth, stage.stageHeight);
pngSource.draw(stage);
var ba:ByteArray = PNGEncoder.encode(pngSource);
var file:File = File.desktopDirectory.resolvePath("test.png");
var fileStream:FileStream = new FileStream();
fileStream.open(file, FileMode.WRITE);
fileStream.writeBytes(ba);
fileStream.close();
Run Code Online (Sandbox Code Playgroud)
一切正常 - 除了透明问题......
如果我能让Flash的舞台颜色变得透明,那么它会起作用 - 但不幸的是 - 没有这样的选择.
我有什么选择吗?
这是我的第一个问题.我当然希望我做得对.
我在网上搜索了这个,发现有线应用程序正在使用Adobe Flash编译的证据,但就是这样.有很多关于Adobe网站赞不绝口的话题,但是苹果现在使用CS 5.5更新将这些应用程序带到了App Store吗?
那么,任何人都可以估算在App Store中使用Adobe Air编写的应用程序数量吗?任何例子都会很棒.
非常感谢Alistair
这是真的吗?基于Adobe AIR的Android开发没有前途.我听说,Android不再支持ADOBE AIR/FLASH系统.这是真的吗?我听说,HTML5是最好的替代品.这些要点是真的吗?
我设法创建了一个C#Server,它使用发送文件到AS3(AIR)客户端sockets.在AS3方面,我正在使用该flash.net.Socket库来接收数据TCP.
这是它的工作原理:
- >我打开我的服务器,它监听客户端(我可以创建一个连接设备列表);
- >我打开我的客户端,它会自动接收数据;
接收数据的触发事件是在客户端上进行的,即我只是打开服务器,当客户端打开时,它获取数据,触发这些事件:
socket.addEventListener(Event.CONNECT, onConnect); -> to connect to the server
socket.addEventListener(Event.SOCKET_DATA, onDataArrival); -> to receive the data
Run Code Online (Sandbox Code Playgroud)
现在我想做一些不同的事情.我不想在客户端上触发它,我希望服务器这样做,即,我想打开我的客户端,并在服务器上放入客户端将获取数据.
那么为什么我要尝试让客户端成为客户端/服务器呢?好吧,因为我的服务器是一台机器,而我的客户端是连接服务器的XXX移动设备,这是我实现这一目标的方法.
所以,鉴于我刚才所说的,我设法创建了我的AS3客户端/服务器应用程序,使用该flash.net.ServerSocket库就像我想要的那样.
首先我把客户端听了:
serverSocket.bind(portNumber, "10.1.1.212");
serverSocket.addEventListener(ServerSocketConnectEvent.CONNECT, onConnectServer);
serverSocket.listen();
Run Code Online (Sandbox Code Playgroud)
然后我使用了接收数据 flash.net.Socket Event.SOCKET_DATA
这就是它.像我想要的那样工作.
但是,它flash.net.ServerSocket与移动设备不兼容,但......
所以这是我的问题:我需要从C#服务器发送文件(需要监听客户端以便我可以创建连接设备列表)到AS3(AIR)客户端,但我必须定义哪个客户端正在获取数据服务器,客户端需要随时准备接收数据,因此,听,但有很多,这就是我认为它们作为客户端的原因.
我的问题是:有没有办法让客户端监听传入的连接并在事件发生时触发事件,而不使用AS3中的服务器套接字?
此外,如果您有不同的方法来实现我的目标,而不使用C#服务器< - > AS3客户端/服务器逻辑,请随时提出您的意见.
我是AdobeAir的新手.我通过以下链接开始使用helloworld应用程序.
http://help.adobe.com/en_US/air/build/WS144092a96ffef7cc4c0afd1212601c9a36f-8000.html
Run Code Online (Sandbox Code Playgroud)
我能够成功编译HelloWorld.mxml文件,但我无法通过以下命令adl HelloWorld-app.xml运行该应用程序.加载初始内容时错误消息说..错误.
另外我附加了HelloWorld-app.xml
<?xml version="1.0" encoding="UTF-8"?>
<application xmlns="http://ns.adobe.com/air/application/1.0">
<id>samples.flex.HelloWorld</id>
<version>0.1</version>
<filename>HelloWorld</filename>
<initialWindow>
<content>HelloWorld.swf</content>
<visible>true</visible>
<systemChrome>none</systemChrome>
<transparent>true</transparent>
<width>400</width>
<height>200</height>
</initialWindow>
</application>
Run Code Online (Sandbox Code Playgroud)
和HelloWorld.mxml是
<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://`enter code here`ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
title="Hello World">
<s:Label text="Hello AIR" horizontalCenter="0" verticalCenter="0"/>
</s:WindowedApplication>
Run Code Online (Sandbox Code Playgroud)
请帮我.
使用FB4.7 Premium,Air 3.4构建iOS应用程序.此时,只是一个非常简单的测试框架.突然,构建器抛出PackageInspectionFailed错误,并且不会完成构建.没有解释为什么.模拟器运行正常.
我应该指出,我一直在构建和打包这一整天直接到我的iPad没有问题.突然间,我收到此错误,应用程序不再构建.我做的最后一件事是添加这一行:
text.autoSize = TextFieldAutoSize.LEFT;
在删除这些编辑后,我现在遇到一个新错误(这是进展吗?)ApplicationVerificationFailed.再一次没有进一步的信息.我没有更改证书,构建参数或其他任何东西.
有趣的是,手动将生成的.ipa拖动到iTunes,然后与iPad同步确实安装了应用程序,没有错误.它只是为我的测试/调试过程添加了更多的步骤.
这个错误是什么?我应该寻找哪些可能导致错误的条件?
我在这里提交了3.9的错误:请投票:https://bugbase.adobe.com/index.cfm?event = newBug
Sarah Northway在此处有另一个3.8的错误报告:请投票:https://bugbase.adobe.com/index.cfm?event = bug&id = 3650414
让我们看一下Adobe的观点 - 需要提供有关此错误原因的更多信息.
编辑:由于答案我更改了发布的代码.我已经添加了该 Security.allowDomain("*") 行,该行会引发错误.那么,怎么做呢?
我想将Action Script 3.0应用程序运行到Flex应用程序中.为此,我做了以下事情:
<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication windowComplete="loadSwfApplication()" xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
<![CDATA[
private function loadSwfApplication()
{
// The next line throws me an error.
Security.allowDomain("*");
var urlRequest:URLRequest = new URLRequest("path/to/the/application.swf");
swfLoader.addEventListener(Event.COMPLETE, loadComplete);
swfLoader.load(urlRequest);
}
private function loadComplete(completeEvent:Event)
{
var swfApplication:* = completeEvent.target.content;
swfApplication.init(); // this is a Function that I made it in the Root class of swfApplication
}
]]>
</mx:Script>
<mx:SWFLoader id="sfwLoader"/>
</mx:WindowedApplication>
Run Code Online (Sandbox Code Playgroud)
问题是在调用swfApplication.init();AIR Player时会抛出异常:
安全沙箱冲突:调用者文件:///path/to/the/application.swf无法访问app所拥有的阶段:/SWFApplicationLoader.swf.
这是因为application.swf我在某处使用这样的舞台:
if (root.stage != null)
root.stage.addEventListener(Event.REMOVED, someFunction); …Run Code Online (Sandbox Code Playgroud)