2012-08-03 76 views
1

我在Adobe AIR中製作了一款定位iOS 4.0+和Android 2.3+的應用程序。我試圖爲嵌入式YT視頻禁用iOS彈性滾動功能:當用戶按下播放器的IFrame時,整個視頻播放結束,我似乎無法找到解決方法。在嵌入式YT IFrame上禁用iOS彈性滾動

我試着添加事件監聽器來防止這種行爲,但它不起作用。

順便說一下,我知道我不能真正控制IFrame中發生的事情。一個快速和骯髒的解決方案是將元素直接放在框架上,就像一個可以捕捉事件的透明畫布或div。根本不理想,因爲用戶將無法按下播放器上的按鈕。

任何想法或建議嗎?

謝謝!

回答

0

我找到了解決方案。

您需要訪問UIWebView(StageWebView下的基礎iOS實現)以禁用彈性滾動。

一旦你有你的Adobe本地擴展(ANE)設置,它相對簡單。 (一個偉大的ANE嚮導/發生器在這裏找到https://github.com/freshplanet/ANE-Wizard

對於iOS 5其直截了當:webView.scrollView.bounces = NO;

如果你想支持iOS 4,它會變得更復雜一些。您沒有webView.scrollView的便利性,所以您需要手動查找此視圖。

的Objective-C代碼塊,說明如何處理的iOS 4和5將是這樣的:

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; 
    } 
} 

希望這有助於!