1

我正在 Adob​​e AIR 中制作面向 iOS 4.0+ 和 Android 2.3+ 的应用程序。我尝试为嵌入式 YT 视频禁用 iOS 弹性滚动:当用户按下播放器的 IFrame 时,整个视频都会平移,我似乎找不到解决方法。

我尝试添加事件侦听器来防止这种行为,但它不起作用。

顺便说一句,我知道我无法真正控制 IFrame 中发生的事情。一个快速而肮脏的解决方案是将元素直接放在框架上,比如一个透明的画布或一个可以捕获事件的 div。一点也不理想,因为用户将无法按下播放器上的按钮。

有什么想法或建议吗?

谢谢!

4

1 回答 1

0

我找到了解决方案。

您需要访问 UIWebView(StageWebView 下的底层 iOS 实现)来禁用弹性滚动。

完成 Adob​​e Native Extension (ANE) 设置后,它就相对简单了。(在这里可以找到一个很棒的 ANE 向导/生成器https://github.com/freshplanet/ANE-Wizard

对于 iOS 5,它很简单:webView.scrollView.bounces = NO;

如果你想支持 iOS 4,它会变得有点复杂。你没有webView.scrollView的方便,所以需要手动找到这个视图。

一个同时处理 iOS 4 和 5 的 Objective-C 代码块是这样的:

NSString *currSysVer = [[UIDevice currentDevice] systemVersion];
if ([currSysVer compare:@"5.0" options:NSNumericSearch] != NSOrderedAscending) {
    // iOS 5 is straightforward
    webView.scrollView.bounces = NO;
} 
else {
  // iOS 4 requires a bit more of work
  UIScrollView *scrollView = nil;
  for (UIView *subview in [webView subviews]) 
  {
    if ([subview isKindOfClass:[UIScrollView class]]) {
      scrollView = (UIScrollView *)subview;
    }
  } 
  if (scrollView != nil) {
    scrollView.bounces = NO;
  }
}

希望这可以帮助!

于 2012-09-06T16:00:07.643 回答