0

私はAndroidとフラッシュの両方の開発に不慣れです。フラッシュを使用してメトロノーム部分を実装することにより、ギターアプリのメトロノームを作成しています。私はすでにギター用の作業プロジェクトとメトロノームアニメーション用に作成した別のフラッシュファイルを持っています。

私はこのウェブサイトで多くの調査を行いましたが、機能しているものを見つけることができないようです。私のコードは以下のとおりです。私は新人のミスを犯しているだけなのか、それとも私にとってもっとうまくいくようなもっと大きな何かを試すことができるのか。

私の目標は、アクティビティでMetronome.swfファイルにアクセスし、フラッシュによって生成された.apkと同じように再生することです。

これが私のmetronome.xmlファイルです:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">

<WebView
    android:id="@+id/webview"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
   />
</LinearLayout>

そしてこれは私のMetronomeActivity.javaファイルです:

package itcs4155.group4.guitarTeacher;


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

public class MetronomeActivity extends BaseActivity {
   private WebView mWebView;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.metronome);


        mWebView = (WebView)findViewById(R.id.webview);
        mWebView.getSettings().setJavaScriptEnabled(true);
        mWebView.getSettings().setPluginsEnabled(true);


        String html = "<object width=\"768\" height=\"1024\"> <param name=\"movie\" value=\"file:///android_asset/Metronome.swf\"> <embed src=\"file:///android_asset/Metronome.swf\" width=\"768\" height=\"1024\"> </embed> </object>";
        String mimeType = "text/html";
        String encoding = "utf-8";
        mWebView.loadDataWithBaseURL("null", html, mimeType, encoding, "");
    }
}

事前に助けてくれてありがとう!

4

2 に答える 2

2

場合によっては、swf ファイルが Web ビューに読み込まれて表示されないことがあります。

マニフェスト ファイルに android:android:hardwareAccelerated="true" を追加してみてください。

<application android:hardwareAccelerated="true">
        <activity ... />
        <activity android:hardwareAccelerated="true" />
    </application>

それは役立つかもしれません...

于 2012-05-11T11:33:17.613 に答える
0

前述のアクシャイのように、

<activity android:hardwareAccelerated="true" />

を追加する必要がありますが、swf が完全に読み込まれないか、最初の swf が読み込まれないという問題がありました。私の解決策は、

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mWebView = (WebView) findViewById(R.id.web_engine);
    mWebView.getSettings().setPluginsEnabled(true);
    mWebView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY); 
    mWebView.setBackgroundColor(Color.parseColor("#000000"));
    mWebView.loadUrl("file:///android_asset/swfFile.html");


}

setPluginsEnabled を使用するには、API バージョンを 10 または 11 にダウングレードする必要があることに注意してください。

また、通常、swf ファイルを公開するときに html ファイルが生成されるか、以下を追加できます。

<div id="flashContent">
        <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="100%" height="100%" id=**"Something**" align="middle">
            <param name="movie" value="**Something.swf**" />
            <param name="quality" value="high" />
            <param name="bgcolor" value="#000000" />
            <param name="play" value="true" />
            <param name="loop" value="true" />
            <param name="wmode" value="direct" />
            <param name="scale" value="showall" />
            <param name="menu" value="true" />
            <param name="devicefont" value="false" />
            <param name="salign" value="" />
            <param name="allowScriptAccess" value="sameDomain" />
            <!--[if !IE]>-->
            <object type="application/x-shockwave-flash" data="**Something.swf**" width="100%" height="100%">
                <param name="movie" value="**Something.swf**" />
                <param name="quality" value="high" />
                <param name="bgcolor" value="#000000" />
                <param name="play" value="true" />
                <param name="loop" value="true" />
                <param name="wmode" value="direct" />
                <param name="scale" value="showall" />
                <param name="menu" value="true" />
                <param name="devicefont" value="false" />
                <param name="salign" value="" />
                <param name="allowScriptAccess" value="sameDomain" />
            <!--<![endif]-->
                <a href="http://www.adobe.com/go/getflash">
                    <img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Obtener Adobe Flash Player" />
                </a>
            <!--[if !IE]>-->
            </object>
            <!--<![endif]-->
        </object>
    </div>
于 2014-02-11T23:31:11.910 に答える