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

标签 apache-flex flash actionscript-3 backwards-compatibility mouse-cursor

我有一个需要 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/

相关文章:

php - Flex Builder 4、ZendAMF 和数据服务 - 错误?

apache-flex - 柔性 3 : How to Link to a Flex Project on the Localhost for Testing Purposes

javascript - 如何公开 Flash 对象的 ActionScript 以便用 Javascript 处理它?

flash - Android 浏览器上的 Swiffy

html - AS3 错误? css标签后自动输入换行符

actionscript-3 - Actionscript 3 ByteArray 异或?

c++ - 在 Adob​​e Flex native 扩展中使用 libc++ 而不是 libstdc++

android - Flash Builder with Flex 能否在设计 View 中为移动应用程序拖放控件?

flash - ActionScript 3声音

wcf - 从 WSDL for Flex 3 创建可绑定(bind)类