【发布时间】:2011-08-05 04:18:43
【问题描述】:
我正在将 Flash SWF 加载到 Android WebView 中。
我希望 SWF 立即全屏并集中显示。
处理闪存的类名是com.adobe.flashplayer.FlashPaintSurface。看日志,当我手动全屏flash时,它会调用com.adobe.flashplayer.FlashPaintSurface.toggleFullScreen()。
我的问题的第一部分是:如何为我的 Flash SWF 手动调用该方法?
请注意,对于嵌入了 Flash 的 webview,我似乎能够正确全屏显示它的唯一方法(让 Flash 的 surfaceview 全屏显示而不是在 webview view 上方显示 Flash)是通过触摸用两根手指打开屏幕,直到屏幕顶部弹出一个界面,并且不会可靠地发生。
为了集中注意力,在我的 webview 类中我调用:
@Override
protected boolean drawChild (Canvas canvas, View child, long drawingTime) {
if (child.getClass().getName().equals("com.adobe.flashplayer.FlashPaintSurface")) {
child.requestFocus();
}
return super.drawChild(canvas, child, drawingTime);
}
这并没有像我想象的那样设置焦点。虽然我假设,如果全屏正确,FlashPaintSurface 应该给自己焦点。但如果第一部分不可行,我想至少不必通过在启动时单击它来关注 SWF。
请注意,我是动态执行此操作,而不是调用我自己制作的 SWF,因此我无法使用 Actionscript 解决此问题。
【问题讨论】:
-
我发现解决焦点问题的方法是添加 onload="document.OBJECTID.focus();"进入 HTML 和 id="OBJECTID" name="OBJECTID" 进入
-
我不确定这是否可行,当您在浏览器中运行 swf 时,您通常只能从用户事件进入全屏状态,例如触摸或用鼠标单击。它是为了安全。如果应用在 adobe air 中运行,则无需用户交互即可全屏显示。
标签: android flash webview fullscreen