gpt4 book ai didi

apache-flex - 可选择使用 Flash 10.2 光标,同时仍与 Flash 10.0 兼容?

转载 作者:行者123 更新时间:2023-12-04 02:39:52 24 4
gpt4 key购买 nike

我有一个需要 Flash 10.0 版才能运行的 Flash 应用程序。我想添加在 Flash 10.2 中引入的 native 鼠标光标,但我不想要求我的所有用户都升级,而且我不想编译我的应用程序的两个单独版本。

有什么方法可以在运行时检测游标是否可用,然后使用它们?

似乎如果您只针对 Flash 10.0 进行编译,它会将 SWF 版本 header 标记为“10”,并且您无法访问新的 API。如果您为 Flash 10.2 编译,它会将版本 header 标记为“11”,并且您可以访问新的 API,但不能再在旧的 Flash 播放器中运行(我在加载 Flex 框架时遇到了疯狂的错误,例如:

VerifyError: Error #1053: Illegal override of play2 in org.osmf.net.dynamicstreaming.DynamicNetStream.

ReferenceError: Error #1065: Variable _379fa43169660c76f131cadc0adfbfe8f347bd31d3ceec26a9cb2a56f0dda1f9_flash_display_Sprite is not defined.

最佳答案

这样的事情应该工作:

var bitmapDatas:Vector.<BitmapData> = new <BitmapData>[new BitmapData(32,32,false, 0xFF0000)];

var MouseCursorDataClass:Class;
try {
MouseCursorDataClass = getDefinitionByName("flash.ui.MouseCursorData") as Class;
}catch(e) {}
if(MouseCursorDataClass) {
var cursorData = new MouseCursorDataClass();
cursorData.data = bitmapDatas;
Mouse["registerCursor"]("test", cursorData);
Mouse.cursor = "Xmas";
}else {
var customCursor=new Bitmap(bitmapDatas[0]);
addChild(customCursor);
stage.addEventListener(MouseEvent.MOUSE_MOVE, moveCursor);
}

function moveCursor(e) {
customCursor.x=mouseX;
customCursor.y=mouseY;
}

事实上,MouseCursorData 对象被创建并在 10.2 中有效,但由于某种原因浏览器在尝试调用 Mouse.registerCursor() 时崩溃。不过,我发布的是 10.0,所以可能如果你发布的是 10.2,整个事情在 10 和 10.2 上都可以正常工作。

关于apache-flex - 可选择使用 Flash 10.2 光标,同时仍与 Flash 10.0 兼容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4610528/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com