在android中加载swf文件的问题

Posted

技术标签:

【中文标题】在android中加载swf文件的问题【英文标题】:Problem loading swf file in android 【发布时间】:2011-09-25 19:32:33 【问题描述】:

我在 android 模拟器中加载交互式 SWF 文件时遇到问题。我使用 2.3.1 AVD。

这是代码:

package com.androidpeople.view;

    import android.app.Activity;
    import android.os.Bundle;
    import android.webkit.WebView;

    public class WebViewExample extends Activity 

        @Override
        public void onCreate(Bundle savedInstanceState) 
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);

            /*WebView webView = (WebView) findViewById(R.id.webview);
            webView.getSettings().setjavascriptEnabled(true);
            webView.loadUrl("http://www.androidpeople.com");

            webView.setWebViewClient(new HelloWebViewClient());*/

            String html =
                "<object width=\"550\" height=\"400\"> <param name=\"movie\" value=\"file:///android_asset/FL.swf\"> <embed src=\"file:///android_asset/FL.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());



        
    


package com.androidpeople.view;

import android.webkit.WebView;
import android.webkit.WebViewClient;

public class HelloWebViewClient extends WebViewClient 

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


 

清单文件:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.androidpeople.view"
  android:versionCode="1"
  android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
    <activity android:name=".WebViewExample"
              android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

</application>
<uses-sdk android:minSdkVersion="5" />

<uses-permission android:name="android.permission.INTERNET"></uses-permission>

</manifest> 

现在的问题是,当我运行项目时,它会在右侧中心的 3D 维度上给出一个框,例如:

我也尝试过更改不同的 SWF 文件,但无法得到正确的解决方案。

谁能帮帮我?谢谢。

【问题讨论】:

您的链接是否正确,例如如果你添加一个链接到 file:///android_asset/FL.swf 的标签,你可以下载该文件吗? @niky:你没有答案的部分原因是你没有问任何问题,除了“谁能帮助我吗?”。 你完全正确,我已经检查过很多次了 你想要整个项目的 zip 文件吗? @niky: This article 可能会帮助您调整问题以吸引回答者 【参考方案1】:

替换

wv.loadDataWithBaseURL("null", html, mimeType, encoding,  ""); 

wv.loadData(html, mimeType, encoding,  "");
wv.getSettings().setJavaScriptEnabled(true);  

【讨论】:

我的模拟器问题和你建议的一样,但我得到的只是上图中的蓝色符号已经消失,但无法看到动画,我所有的代码都是正确的在这里发布问题请帮助我! ***.com/questions/9308712/…【参考方案2】:

那只是因为您需要安装 Flash Player。 从adobe网站下载apk并安装在模拟器上。

【讨论】:

这在您浏览网页时有效吗?是否显示 Flash 动画? 是的。而且,我的 Flash 开发人员通过 Adob​​e-air 生成一个 apk,当他们在设备中测试时,它工作正常,但是当我尝试以这种方式执行任何交互式 swf 文件时,我在设备中加载时遇到问题。我想告诉你的另一件事是,当我尝试加载非交互式 swf 文件时,它会正常工作。但是这里提出了问题.... 我认为是动作脚本版本有问题吗?因为我使用了 action script 3.0 建议您选择 swf 文件是否有任何注意事项(注意大小 r 的含义)?【参考方案3】:

Flash 无法在模拟器上运行! 至少,我没有找到这样做的方法。但是,您可以从 this site 下载 APK 并将其安装在您的设备上。然后,使用下面的代码,我得到了 flash 的工作。

public void onCreate(Bundle savedInstanceState) 
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    WebView webView = (WebView) findViewById(R.id.webview);
    webView.getSettings().setPluginState(WebSettings.PluginState.ON);
    webView.loadUrl("http://www.adobe.com/software/flash/about/");

在activity_main.xml中:

<WebView  xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/webview"
android:layout_
android:layout_
/>

【讨论】:

以上是关于在android中加载swf文件的问题的主要内容,如果未能解决你的问题,请参考以下文章

如何在android中加载swf as2?

在另一个 swf 中加载鼠标单击事件的 swf

Flex中加载的SWF文件的帧率不同?

无法在 AIR 中加载的 SWF 中的文本字段上进行复制/粘贴

在另一个SWF中加载SWF

Actionscript 3 - 在我的 swf 中加载另一个 swf 时出现列表错误