代码之家  ›  专栏  ›  技术社区  ›  harto

使用jQuery.animate在AdobeAIR中制作动画

  •  5
  • harto  · 技术社区  · 16 年前

    在我的AIR应用程序中,我想使用jQuery设置HTML元素的动画。当我在全局HTMLLoader中尝试动画时,没有问题。但是,我在尝试为“次要”HTMLLoader(即原始文档打开的HTMLLoader)中的元素设置动画时遇到了一个问题。

    top , left

    动画的类型似乎并不重要。我已将代码简化为以下内容:

    var loader;
    
    $(function() {
        loader = new air.HTMLLoader();
        loader.addEventListener(air.Event.COMPLETE, start);
        window.htmlLoader.stage.addChild(loader);
        loader.load(new air.URLRequest('sandbox2.html'));
    });
    
    function start() {
        loader.width = loader.window.document.width;
        loader.height = loader.window.document.height;
        $('.task', loader.window.document).click(function() {
            $(this).animate({ backgroundColor: '#c00' }, 1000);
        });
    }
    

    我尝试将等效的HTML/JS加载到Firefox和Safari中,结果很好。我正在运行MacOSX10.5。

    有什么想法吗?谢谢

    3 回复  |  直到 16 年前
        1
  •  5
  •   Nosredna    16 年前

    空气更像是狩猎和铬。AIR使用Webkit,在Webkit版本中,它有点落后于Safari和Chrome。你能看到这些是怎么工作的吗?

    另外,试着缩小范围,看它是否与颜色有关(尽管我无法想象是什么)。试试身高而不是颜色。

        2
  •  2
  •   Pieter    16 年前

    我犯了一个错误 small patch

        3
  •  1
  •   Webber    16 年前

    如果它能在Safari上正常工作,但在AdobeAIR中不能正常工作,那么在我看来,jquery应用程序在应用程序沙箱中运行时会出现安全问题(AdobeAIR上的默认但受限区域)。请创建一个非应用程序沙盒,并在其中运行您的应用程序,以查看这是否是一个安全问题。非应用程序沙盒的工作方式应该与浏览器完全相同。 http://labs.adobe.com/wiki/index.php/AIR:HTML_Security_FAQ

    与应用程序安全沙盒中的内容不同,非应用程序安全沙盒中的JavaScript内容可以随时调用eval()函数来执行动态生成的代码。但是,在非应用程序安全沙箱中对JavaScript有一些限制。但这些限制反映了一般的浏览器限制。

    使用iframe可以轻松创建非应用程序沙盒。