我已经构建了一个使用p2p功能的flash 10 flex应用程序(我使用开发人员密钥连接到stratus),目前一切正常。现在我希望我的应用程序在Adoble Air Runtime上运行,但似乎p2p对Air不起作用。
我可以在Air应用程序中成功连接到stratus服务器,但在此之后,当我尝试使用NetConnection.nearID时,会出现错误: “ReferenceError:错误#1069:在flash.net.NetConnection上找不到属性nearID,并且没有默认值。”
我尝试过flex sdk 3.2和3.4,但它们都不起作用。有没有人开发过使用p2p的Air Application并提供一些提示?谢谢你的帮助〜
答案 0 :(得分:1)
我遇到了同样的问题。我会说,我只体验它在Linux上的开发。如果我采用相同的代码并在Windows上构建,它可以正常工作。
事实上,我可以从Windows生成发布版本,将其移至Linux,并且可以使用nearID。我可以在Linux上生成发布版本,将其导出到Windows,并且我得到相同的nearID未找到问题。
所以,我确信这是一个构建时间的问题。研究表明,如果针对常规Flex应用程序针对Flash 9进行编译,则会发生同样的错误。我无法想象这就是问题所在。 FWIW,我尝试过SDK 3.3,3.4,3.5。我也尝试过Air SDK 1.5,2.0b1和2.0b2。我得到了所有组合的问题。
您使用什么环境来构建应用程序?我几乎希望它不是Linux,因为Adobe几乎放弃了Flex Builder for Linux。
答案 1 :(得分:1)
现在问题解决了,Flex构建器根本不聪明,您必须在选择新版本的SDK后手动进行更改。需要更改以下2个文件:
1.描述符文件,使用xmlns =“http://ns.adobe.com/air/application/1.5.3”
2.项目路径中的.actionScriptProperties文件,使用htmlPlayerVersion =“10.0.0”
详情请参阅 http://help.adobe.com/en_US/AIR/1.5/devappsflex/WS5b3ccc516d4fbf351e63e3d118666ade46-7ff1.html 对于基于SWF的应用程序,应用程序描述符中指定的AIR运行时版本确定可以作为应用程序的初始内容加载的最大SWF版本。指定AIR 1.0或AIR 1.1的应用程序只能使用SWF9(Flash Player 9)文件作为初始内容 - 即使在使用AIR 1.5运行时运行时也是如此。指定AIR 1.5或更高版本的应用程序可以使用SWF9或SWF10(Flash Player 10)文件作为初始内容。 SWF版本确定哪些版本的AIR和Flash Player API可用。如果将SWF9文件用作AIR 1.5应用程序的初始内容,则该应用程序将只能访问AIR 1.1和Flash Player 9 API。此外,对AIR 1.5或Flash Player 10中的现有API所做的行为更改将无效。