我正在将Flash SWF加载到Android WebView中。
我希望SWF能够立即全屏并获得焦点。
负责处理Flash的类名是com.adobe.flashplayer.FlashPaintSurface
。观察日志,当我手动全屏Flash时,它会调用com.adobe.flashplayer.FlashPaintSurface.toggleFullScreen()
。
我的第一个问题是:如何手动调用Flash SWF的该方法?
请注意,在嵌入了Flash的webview中,我似乎唯一能够正确全屏它的方法(使Flash的surfaceview
全屏显示而不是Flash显示在webview view
的顶部)是用两个手指触摸屏幕,直到屏幕顶部弹出一个界面,但这种方法并不可靠。
至于焦点,我在我的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 解决此问题。