AIR - 按比例调整本机窗口大小

2024-05-25

我的应用程序启动时舞台尺寸为 1000 x 500,长宽比为 2:1。本机窗口具有系统镶边,它总是会高一些像素。

怎么可能只允许本机窗口按比例调整大小以始终保持舞台的 2:1 宽高比?

以下代码无法按我的预期工作:

package
{
//Imports
import flash.display.NativeWindow;
import flash.display.Sprite;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.events.Event;
import flash.events.NativeWindowBoundsEvent;

//Class
[SWF(width="1000", height="500", frameRate="60", backgroundColor="#000000")]
public class WindowTest extends Sprite
    {
    //Constants
    private static const ASPECT_RATIO:Number = 2.0; //2:1 Aspect Ratio

    //Constructor
    public function WindowTest()
        {
        init();
        }

    //Initialization
    private function init():void
        {
        stage.scaleMode = StageScaleMode.NO_SCALE;
        stage.align = StageAlign.TOP_LEFT;
        stage.nativeWindow.addEventListener(NativeWindowBoundsEvent.RESIZE, windowResizeEventHandler);
        }

    //Window Resize Event Handler
    private function windowResizeEventHandler(evt:NativeWindowBoundsEvent):void
        {
        evt.currentTarget.width = stage.stageHeight * ASPECT_RATIO;
        }
    }
}

防止默认事件,并手动调整窗口大小:
编辑:看起来,空气以一种奇怪的方式计算宽度,因此为了防止开始时闪烁,在 SWF 标签中将窗口大小设置为 1050x500。

package{
import flash.display.Sprite;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.events.Event;
import flash.events.NativeWindowBoundsEvent;

//Class
[SWF(width="1000", height="500", frameRate="60", backgroundColor="#000000")]
public class airtest extends Sprite
{
    //Constants
    private static const ASPECT_RATIO:Number = 2.0; //2:1 Aspect Ratio

    //Constructor
    public function airtest()
    {
        init();
    }

    //Initialization


private function init():void
    {
        stage.scaleMode = StageScaleMode.NO_SCALE;
        stage.align = StageAlign.TOP_LEFT;
        stage.nativeWindow.addEventListener(NativeWindowBoundsEvent.RESIZING, windowResizeEventHandler);
    }

    private function windowResizeEventHandler(evt:NativeWindowBoundsEvent):void
    {
        evt.preventDefault()
        if (evt.beforeBounds.width != evt.afterBounds.width){//user resizes width
            evt.currentTarget.width = evt.afterBounds.width
            evt.currentTarget.height = evt.afterBounds.width/ASPECT_RATIO;
        } else if (evt.beforeBounds.height != evt.afterBounds.height){
            evt.currentTarget.height = evt.afterBounds.height
            evt.currentTarget.width = evt.afterBounds.height*ASPECT_RATIO;
        }

    }
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AIR - 按比例调整本机窗口大小 的相关文章

  • 如何在 Flex 中对 ArrayCollection 进行排序

    我想按 fieldName 升序对 Arraycollection 进行排序 这是我的代码 我想知道它是否正确 你有什么建议吗 public static function arrayCollectionSort ar ArrayColle
  • Chrome 通知/权限栏 - 检测是否可见

    当 Flash 请求访问相机或麦克风时 Chrome 会显示以下通知栏 有没有 JavaScript 或 AS3 方法可以检测它是否可见 我知道你问这个问题已经很长时间了 但我们终于找到了一个我想分享的解决方法 ActionScript C
  • AS3 - for (... in ...) 与 for every (... in ...)

    以下代码执行完全相同的操作 之间有区别吗for each and for in var bar Array new Array 1 2 3 for var foo in bar trace foo for each var foo2 in
  • 在数组/对象中查找项目的最快方法

    在 Javascript AS3 中查找列表或对象中项目的索引的最快方法是什么 我对这两种语言都提出这个要求 因为这两种语言的语法相似 假设 myArray one two three myObject one 1 two 2 three
  • 具有轴和角度的 3D 旋转

    我知道 3D 旋转在 SO 和许多其他网站上都有详细记录 但尽管阅读了无数的解释 我仍然没有弄清楚我哪里出错了 我的背景是艺术和设计 而不是数学和编程 而且我从来都不确定我的攻击角度 没有双关语 是否正确 我没有粘贴我那令人沮丧的代码的拼凑
  • AS3/Flash/Flex 中的枚举? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 相对于 AS2 我真正喜欢 AS3 的一件事是它增加了多少编译时类型检查 然而 它似乎有些不足 因为没有可用的类型检查枚举结构 在 A
  • C++中最大化窗口时的问题

    我的程序需要任意最大化当前桌面上的任何窗口 我通过调用来实现这一点ShowWindow hWnd SW MAXIMIZE 其中 hWnd 是HWND我想要最大化的窗口 当该行代码执行时 相关窗口 此处为记事本 如下所示 一切看起来都很好 除
  • 如何识别当前打开的每个单独的浏览器窗口?

    如何使用 javascript 唯一地识别当前为所有主要浏览器打开的每个单独的浏览器窗口 让我解释一下我需要了解的内容 并考虑以下场景 我有 3 个当前打开的浏览器窗口 任何现代浏览器 即 Chrome Firefox 等 每个窗口都包含多
  • 我可以使用哪些命令行工具来获取每个平台上当前活动的应用程序/窗口?

    我正在尝试创建一个 AIR 应用程序来记录应用程序的使用情况 使用 AIR 从系统获取信息的唯一简单方法是使用命令行工具和抓取stdout 我知道类似的工具top and ps对于 OS X 但它们似乎都没有告诉我哪个应用程序 窗口是活动的
  • 自定义上下文菜单未显示,因为显示对象位于“顶部”

    作为这里另一个问题的后续 我已经在 Flash 应用程序中构建了一个自定义上下文菜单项 但遇到了有时不显示的问题 我发现问题是另一个精灵位于带有自定义上下文菜单的项目的 顶部 然而 即使将 mouseEnabled 和 mouseChild
  • Flash AS3 -domain.com/crossdomain.xml 和安全错误

    在代码中 我在 URLLoader 之前使用它 swf 将与许多不同的域一起使用 并且这将及时更改 Security allowDomain In http domain com crossdomain xml http domain co
  • 如何使输入字段的宽度为 100% 减去提交按钮的宽度?

    我有一个非常基本的单一输入字段 旁边有一个 提交 按钮 搜索按钮的固定宽度为 104 像素 两者都包裹在一起 总宽度占浏览器视口的 50 我的计划是允许输入字段随着浏览器窗口的扩大而扩大 目前 对于我的特定浏览器窗口 我必须修复输入字段的宽
  • 在 Flex 中隐藏右键单击上下文菜单中的默认选项

    我正在开发一个 Flex 应用程序 我想为其添加一个上下文菜单 我用这段代码得到了它 var myMenu ContextMenu new ContextMenu myMenu hideBuiltInItems var defaultIte
  • 流程图调整大小错误,高度无效

    我正在尝试将图表添加到我的页面 但在向图表添加调整大小时遇到 一些问题 为了使调整大小插件正常工作 宽度和高度 og 占位符 div 需要设置为 100 但是当我这样做并想要在新窗口中加载图形时 我尝试在文档准备就绪时调用绘图方法 但我的
  • 有没有办法用 Tkinter 创建透明窗口?

    最终 我尝试使用 Tkinter 模块用 Python 创建 奇怪形状的窗口 但现在我会满足于能够使背景透明 同时保持子部件完全可见 我知道这是使用 wxPython 和其他一些模块完成的 但我想了解 Tkinter 的限制 Tkinter
  • ExternalInterface 是否适用于 file: 协议?

    任何人都可以确认ExternalInterface可以在file 协议 或者指向一些说不会的文档 开始看起来这行不通了 says 在两者之间的任一方向编写脚本 本地 HTML 文件和本地 SWF 文件 例如 使用 外部接口类 要求 HTML
  • Actionscript 3:使用字符串中的名称播放库中的声音

    我正在尝试编写一些 actionscript 3 代码来播放库中的短声音 使用动态创建的字符串来加载它 在 AS2 中 我可以这样做 mySound new Sound mySound attachSound any concatenate
  • ReferenceError:错误#1069:属性 box_mc_0

    我试图使用循环隐藏舞台上的影片剪辑 但在发布它时出现以下错误 这只是这个概念的一个示例 var q for q 0 q lt 3 q stage box mc q visible false 错误消息 参考错误 错误 1069 财产box
  • 如何在 ItemRenderer 内使用数据网格范围外的变量?

    我使用将项目数组绑定到数据网格ItemRenderer 我用data变量来控制可绑定数据 我也有someComponentVariable需要插入到每一行中 但它是在组件范围内声明的 因此数据网格似乎无法重新识别它 编译错误 我如何使用这个
  • 如何重置加速度计事件 As3

    在我的项目中 在游戏开始时加速计事件工作正常 当游戏到达游戏结束页面并单击重新启动按钮时 重新启动整个游戏时 所有对象都工作良好 所有值也已重置 但加速计不起作用 提前致谢 代码如下 if Accelerometer isSupported

随机推荐

  • 隐藏行时更新奇数/偶数行颜色

    我在一页上有几个表格和一个复选框 用于根据其中一个单元格的内容显示 隐藏行 虽然所有行都是可见的 但一切都很完美 并且行颜色根据需要交替 当我隐藏行时 交替的行颜色不再正确 显然 如何轻松更新类以在选中复选框时保持交替行颜色 然后在取消选中
  • `type` 和 `const type` 的类型特征

    我需要某种类型特征 template
  • 启用 NET 的开始标记需要 SHORTTAG YES

    尝试对我的 aspx 的输出进行 W3C 验证 VB NET 2008 Framework 3 我收到这个警告 警告第 6 行第 76 列 启用 NET 的开始标记需要 SHORTTAG 是的 该序列可以至少以两种不同的方式解释 方式 具体
  • 检查文本字段是否为空会导致 Swift 2 错误

    我正在尝试检查文本框是否没有值 当我这样做时 if userEmail isEmpty userPassword isEmpty userPasswordRepeat isEmpty I get the following error I
  • 确定列表编号是否连续

    我在 Java 工作 我有一个无序列表 包含 5 个数字 范围从 0 100 没有重复 我想检测其中 3 个数字是否连续且没有间隙 例子 9 12 13 11 10 true 17 1 2 3 5 true 19 22 23 27 55 f
  • 如何让 Discord 机器人显示“机器人正在输入...”状态?

    所以如果我有一个像这样的长命令 bot command pass context True async def longCommand ctx typing status sleep 10 bot say Done 不幸的是 在文档或此处没
  • 为什么这段代码不能产生正确的输出? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 给定一个字符串和一个数字 该函数将从
  • 将Python嵌入到C中——导入模块

    我在使用嵌入式 Python for C 时遇到问题文档 http docs python org extending embedding html 每当我尝试使用导入的模块时 我都会得到 PythonIncl exe 中 0x1e089e
  • 关于使用My作为类名前缀的意见

    就我个人而言 我从来不喜欢MyObject类的命名 我猜现状会同意 但我想看看争论的另一面 以及它是否有任何有效性 我的 已被我使用 请使用其他内容
  • iOS 4.3 SDK - 在 3G 设备上调试

    目前有关 iOS 4 3 设备支持的信息还很少 然而 由于 iPhone 3G 设备 以及较旧的 iPod touch 设备 缺乏 4 3 Beta 版 许多人认为这可能是旧设备操作系统升级的终结 即使这个假设现在是错误的 但有一天它也不会
  • PyInstaller 是否包含 CUDA

    我正在开发一个Python脚本 我使用Python 3 7 3 它使用tensorflow gpu 1 14 0 并使用PyInstaller 3 5将此脚本转换为可执行文件 我使用的是 CUDA 10 0 和 cuDNN 7 6 1 我的
  • 堆栈内存未释放

    我有以下循环 它从此处的实现中弹出我拥有的 C 并发队列 https juanchopanzacpp wordpress com 2013 02 26 concurrent queue c11 https juanchopanzacpp w
  • 如何从我的应用程序打开 ios Native dialer 应用程序

    我想打开本机拨号器应用程序并允许用户在那里输入电话号码 我想要这个的原因是因为在我的应用程序中 用户需要使用 USSD 代码才能拨打电话 但使用下面的代码没有任何反应 没有任何启动 NSString phoneNumber tel stri
  • Node.js:在检索 http 请求正文之前断开 http 请求连接

    我正在用 Node js 编写一个 http 服务器 我有一个客户端通过 HTTP POST 多部分 数据 将大文件上传到该服务器 我想接受唯一使用有效文件名上传文件的连接 我有一些条件 在服务器检索数据之前应断开无效文件名连接 我不知道如
  • 转换为 JPEG 时 HEIC 切片损坏

    我在将 HEIC 图像转换为 jpeg 时遇到问题 HEIC 文件是使用运行最新 iOS 公共测试版的 iPhone 拍摄的图像 我正在使用诺基亚提供的库 https github com nokiatech heif 要解析文件并从 HE
  • Matlab 中的 3D 堆叠条形图

    我想在一个图中绘制多个堆叠条形图 detached 条形图 例如 准确地想象一下bar http mathworks com help matlab ref bar3 detached png绘图 但堆叠在一起 而不是单一颜色 Set up
  • 由于WiredTiger.turtle权限,Mongodb无法启动

    我试图在 ubuntu 16 04 上启动 mongodb 4 0 4 但数据库拒绝了我的所有尝试 我检查了 mongodb 日志文件 发现名为 WiredTiger turtle 的文件没有所需的权限 这里记录错误 2018 11 26T
  • 渲染后更改 Fullcalendar 事件源

    我一直在使用 FullCalendar v1 5 3 来替代 MS SharePoint 我正在尝试重新渲染日历事件的源 例如 当页面默认加载时 这是 ajax 调用 日历 事件 feedTasks start 1338094800 end
  • 从 .net-core 中的代码覆盖范围中排除类或方法

    我知道我能够使用 ExcludeFromCodeCoverage 排除 Net Framework 4 中的代码覆盖率 有谁知道是否有办法可以从 dotnet 核心中排除代码覆盖率 从 NET Core 2 0 开始 您可以使用Exclud
  • AIR - 按比例调整本机窗口大小

    我的应用程序启动时舞台尺寸为 1000 x 500 长宽比为 2 1 本机窗口具有系统镶边 它总是会高一些像素 怎么可能只允许本机窗口按比例调整大小以始终保持舞台的 2 1 宽高比 以下代码无法按我的预期工作 package Imports