- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
构建 Adobe AIR 应用程序 - localToGlobal 似乎存在问题。我一直在关注这个以针对多种屏幕尺寸设置我的应用程序:
http://www.adobe.com/devnet/air/articles/multiple-screen-sizes.html
但我的 localToGlobal 似乎总是遇到问题。我已经使用了“缩放和居中界面”部分中的大部分代码,我的应用程序正在正确调整应用程序大小。
我已经转换了我所有的 localToGlobal 调用并将新的比例值乘以 x 和 y,但没有得到所需的结果。它在原始 iPhone 4/4s 分辨率上仍然工作正常,但在 3gs 分辨率上测试我的线交叉点不起作用,特别是使用 localToGlobal 代码来计算。
这是调用本地点的代码:
var p:Point = localToGlobal(_lineStart);
p = parent.globalToLocal(p);
p.x *= GameHolderSun.scaleValue;
p.y *= GameHolderSun.scaleValue;
return p;
确定交点:
var p:Point = determineLineIntersection(_laser.get2ndLastPoint(), _laser.getLastPoint(), _reflectors[i].lineStart, _reflectors[i].lineEnd);
if(p != null){
_laser.addNewLinePoint(p, _reflectors[i].rotation);
}
我在网上抓取的直线交点函数:
private function determineLineIntersection(A:Point, B:Point, E:Point, F:Point,as_seg:Boolean=true):Point
{
var ip:Point;
var a1:Number;
var a2:Number;
var b1:Number;
var b2:Number;
var c1:Number;
var c2:Number;
a1= B.y-A.y;
b1= A.x-B.x;
c1= B.x*A.y - A.x*B.y;
a2= F.y-E.y;
b2= E.x-F.x;
c2= F.x*E.y - E.x*F.y;
var denom:Number=a1*b2 - a2*b1;
if (denom == 0) {
return null;
}
ip=new Point();
ip.x=(b1*c2 - b2*c1)/denom;
ip.y=(a2*c1 - a1*c2)/denom;
ip.x *= GameHolderSun.scaleValue;
ip.y *= GameHolderSun.scaleValue;
if(as_seg)
{
if(Math.pow(ip.x - B.x, 2) + Math.pow(ip.y - B.y, 2) > Math.pow(A.x - B.x, 2) + Math.pow(A.y - B.y, 2)) return null;
if(Math.pow(ip.x - A.x, 2) + Math.pow(ip.y - A.y, 2) > Math.pow(A.x - B.x, 2) + Math.pow(A.y - B.y, 2)) return null;
if(Math.pow(ip.x - F.x, 2) + Math.pow(ip.y - F.y, 2) > Math.pow(E.x - F.x, 2) + Math.pow(E.y - F.y, 2)) return null;
if(Math.pow(ip.x - E.x, 2) + Math.pow(ip.y - E.y, 2) > Math.pow(E.x - F.x, 2) + Math.pow(E.y - F.y, 2)) return null;
}
return ip;
}
希望有人能帮忙!!如果需要,我可以提供更多信息!!
最佳答案
我认为您的问题是 DPI,至少如果您正在设置 applicationDPI
。 Stage
值不补偿强制 DPI 更改。
要解决这个问题,您有两个选择:
1) 对于 stage.mouseX/mouseY
和 stage.stageHeight/Width
,您可以只使用 FlexGlobals.topLevelApplication.systemManager
属性。我相信 SystemManager 有一个 mouseX/mouseY 属性,您可以在 screen
属性中找到新的宽度/高度
2) 您自己负责 DPI 更改。这样做相对简单。对于使用 localToGlobal,我认为这是您必须要做的。
var x:Number = 200; //this number is in default DPI size
var appDPI:Number = FlexGlobals.topLevelApplication.applicationDPI;
var deviceDPI:Number = Capabilities.screenDPI; //actual DPI of device
//Adobe doesn't use the actual DPI, they use either 160, 240, or 320
//and use ranges to determine which maps where
if ( deviceDPI < 200 ) {
deviceDPI = 160;
}
else if ( deviceDPI >= 200 && deviceDPI < 280 ) {
deviceDPI = 240;
}
else if ( deviceDPI >= 280 ) {
deviceDPI = 320;
}
var newX:Number = x / ( deviceDPI / appDPI );
我强烈建议您创建一个 Util 类并将其放入一个(可能是静态的)函数中,因为您最终可能会经常使用它。 X var 可以是任何数字,只要不针对 DPI 变化进行调整即可。
希望对您有所帮助。七月份时,我一直在努力弄清楚为什么我的 stage.stageWidth 和 stage.stageHeight 值不正确。
关于ios - 本地到全局 Adobe AIR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12828114/
我开发了一个 Adobe AIR 应用程序,用户可以从我的网页上安装和启动它。如果用户计算机上尚未安装 AIR 应用程序,我将使用安装标志来安装它。在我对应用程序进行签名之前,此安装仅在 AIR
是否可以让我的 AIR 应用程序能够将自己添加到启动程序列表中? (我想在多个平台上进行这项工作 - 即 Windows、Mac 和 Linux)我将如何去做? 最佳答案 if (NativeAppl
我希望能够从Adobe AIR应用程序中启动第三方进程(实际上是命令行进程)。 AIR应用程序在运行时是否存在安全上下文,可以防止这种情况发生? 最佳答案 Adobe AIR 最需要的两个功能是从 A
我希望使用 Adobe Air 来可视化来自串行端口的信息。有没有办法在 Air 中天真地做到这一点?我假设不是。 如果是这种情况,我的最佳途径是创建一个本地应用程序,通过 TCP/IP 连接使串
Adobe 应用支持多核还是仍然使用单核? 如果我使用的是 Pentium 4 处理器 (3 ghz) 与双核处理器 (2.7 ghz) 相比,速度(应用程序的性能)是否会有所不同 编辑:如 Andr
我需要为 mac 和 Windows 开发一个桌面应用程序,使用 HTML JqueryMobile 和 CSS,我只是想确认 Adobe air 是否完全免费用于开发,并且想知道任何 IDE 支
我正在尝试将网络摄像头的视频和音频录制到存储在用户本地硬盘上的 FLV 文件中。我有此代码的一个版本,它使用 NetConnection 和 NetStream 通过网络将视频流式传输到 FMS (R
关闭。这个问题是opinion-based .它目前不接受答案。 想改进这个问题?更新问题,以便 editing this post 提供事实和引用来回答它. 8年前关闭。 Improve this
我的问题是 如何防止用户关闭应用程序? .我需要出现一条警告消息,询问用户是否真的想离开应用程序。 我的应用程序是在 中开发的Adobe AIR .请帮忙,我有麻烦了。 最佳答案 是的,我也发现了这个
我一直使用自行生成的证书为我的 Adobe AIR 应用程序签名,但现在我想要看起来更正式的证书。我应该从哪里获得什么样的商业证书? 一如既往,感谢您的帮助! 最佳答案 经过一番寻找,我在 AIR
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 8年前关闭。 Improve this qu
Adobe Air 究竟是什么?我看到很多人在谈论它,我什至看到了它的应用程序,但我仍然不完全确定它的独特之处或它与其他语言的不同之处。有人可以从程序员的角度给我简明的版本吗? 编辑: 我不熟悉 Fl
我想显示位于我的 AIR 应用程序的 app-storage 目录中的图像。此图像必须显示在 html 文本区域中,其中 html 文本来自本地嵌入式 sqlite 数据库。 当我输入以下代码时: i
我刚开始学习 Adobe AIR。我想通过引用示例应用程序我会学得很快。您能告诉我任何 Adobe AIR 开源应用程序吗? 感谢您的帮助。 最佳答案 超过 20 个示例应用程序(来自 Ado
创建 adobe air 文件后,我可以使用 winrar 或任何其他存档程序打开它,并查看所有内容,包括我的程序的代码。 有办法避免这种情况吗?某种加密或其他什么? 非常感谢。 最佳答案 没有。 “
已结束。此问题正在寻求书籍、工具、软件库等的推荐。它不满足Stack Overflow guidelines 。目前不接受答案。 我们不允许提出寻求书籍、工具、软件库等推荐的问题。您可以编辑问题,以便
我们的代码签名证书最近过期了。它已更新,但现在每当我尝试使用更新的证书打包应用程序(无论我是否尝试迁移过期的证书),安装后,每当我尝试运行应用程序时都会收到以下消息: “此应用程序的此安装已损坏。请尝
我遇到了这个问题,我需要一个简单的医疗设备来将一串逗号分隔的数字输出到我的 Adobe Air 应用程序。我很高兴能与 Web 服务以外的东西交谈! 所以,我得到了一个 USB 转串口适配器,插入
是否可以在不安装的情况下运行 Adobe AIR 应用程序? AIR 运行时已经安装,我们需要一个解决方案来控制应用程序的“安装”——所以我们需要的是运行一个 adobe air 应用程序,该应用
我们有一个 Adobe Air 应用程序,可以将大量图像下载到应用程序存储中。我扫描了文档并没有发现任何迹象,但我想我会仔细检查:任何人都知道是否有可能看到用户在他们的 HD 上有多少可用存储空间
我是一名优秀的程序员,十分优秀!