在Android模拟器上加载swf文件

时间:2012-01-10 10:12:11

标签: java android flash android-webview swfobject

你是android开发的新手。我创建了一个应用程序,我需要将swf文件加载到模拟器中。为此,我将一个swf文件放在prjt-workspace / assets / test.swf中 从代码我试图将此SWF加载到WebView中。在尝试运行此命令但获取空白页时,我在logcat上收到以下错误:

01-10 15:26:00.271: D/WebCore(10262): Console: Not allowed to load local 
resource: file:///E:/android_new_workspace/FirstAndroidPrjt/assets/Demo_mobile.swf
line: 0 source: 

以下是我使用的代码部分:

public class WebViewExample extends Activity{

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.loadswf);
        String html =
            "<object width=\"550\" height=\"400\"><param name=\"movie\" value=\"file:///E:/android_new_workspace/FirstAndroidPrjt/assets/Demo_mobile.swf\">" +
            "<embed src=\"file:///E:/android_new_workspace/FirstAndroidPrjt/assets/Demo_mobile.swf\" width=\"550\" height=\"400\"> </embed> </object>";
        String mimeType = "text/html";
        String encoding = "utf-8";
        WebView wv=(WebView) findViewById(R.id.webview);
        wv.getSettings().setJavaScriptEnabled(true);
        wv.getSettings().setPluginsEnabled(true);
        wv.loadDataWithBaseURL("null", html, mimeType, encoding, "");
        wv.setWebViewClient(new HelloWebViewClient());

         }
    }


public class HelloWebViewClient extends WebViewClient{

      @Override
      public boolean shouldOverrideUrlLoading(WebView view, String url) {
         view.loadUrl(url);
         return true;
      }

 }

任何人都可以告诉我们如何解决这个问题..?

我们可以通过直接从系统目录中提供url而不是filepath来加载swf吗?

专家请帮助...提前致谢..

1 个答案:

答案 0 :(得分:1)

@Tijo:您可以使用:webview.loadUrl("file:///android_asset/myown.swf");

指定

或者你可以这样做:<embed src=\"file:///android_asset/BannerRotatorFX.swf\" width=\"550\" height=\"400\"> </embed> </object>";

您无法使用系统目录中的filepath。但是你可以将swf文件放在android应用程序的资源文件夹中

AFAIK,您无法在模拟器中默认加载swf,因为您无法在模拟器AFAIK中下载Flashplayer。但我认为你可以手动将flashplayer库文件放在你的模拟器中,以便这个工作,虽然我没有亲自尝试过。 (我仍然在寻找flashplayer库所在设备的位置,以便我可以复制它。)

我希望这会对你有所帮助。