將flash嵌入你的程式中

來源:互聯網
上載者:User

  無論如何,我們需要一個android2.2的平板電腦或者android2.2的手機一部,同時我們的android平台需要安裝最新的flash for android 的外掛程式。  具備了這些之後,我們就可以將flash通過webView的方式嵌入到我們自己的程式中了。

  需要的知識:JavaScript知識、java知識、html知識,瞭解css的話,那最好。

 

  不多說,和以前一樣,直接上代碼,。不解釋太多。。。。

 

1. 項目結構圖

 

 

2. 程式運行圖

 

3.MainActivity .java  主類

package com.geolo.js.falsh;<br />import android.app.Activity;<br />import android.os.Bundle;<br />import android.os.Handler;<br />import android.os.Message;<br />import android.view.View;<br />import android.webkit.WebChromeClient;<br />import android.webkit.WebSettings.PluginState;<br />import android.webkit.WebView;<br />import android.widget.Button;<br />import android.widget.FrameLayout;<br />import android.widget.ProgressBar;<br />public class MainActivity extends Activity {<br />private WebView mWebView;<br />private Button playButton,pauseButton;<br />private ProgressBar mProgressBarHorizontal;<br />private final static int PROGRESSBARSIZE = 0x0000;<br />@Override<br />public void onCreate(Bundle savedInstanceState) {<br />super.onCreate(savedInstanceState);<br />setContentView(R.layout.main);<br />mWebView = (WebView)findViewById(R.id.webView01);<br />mProgressBarHorizontal = (ProgressBar)findViewById(R.id.progress_horizontal);<br />this.setProgress(mProgressBarHorizontal.getProgress() * 100);<br />//this.setSecondaryProgress(mProgressBarHorizontal.getSecondaryProgress() * 100);<br />playButton = (Button)findViewById(R.id.playButton);<br />pauseButton = (Button)findViewById(R.id.pauseButton);<br />playButton.setOnClickListener(buttonListener);<br />pauseButton.setOnClickListener(buttonListener);<br />mWebView.getSettings().setJavaScriptEnabled(true);<br />//mWebView.getSettings().setPluginsEnabled(true);<br />mWebView.getSettings().setPluginState(PluginState.ON);<br />mWebView.setWebChromeClient(new WebChromeClient());<br />mWebView.addJavascriptInterface(new CallJava(), "CallJava");<br />mWebView.loadUrl("file:///android_asset/sample/index.html");<br />startThread();<br />}<br />Button.OnClickListener buttonListener = new Button.OnClickListener() {<br />@Override<br />public void onClick(View v) {<br />int buttonID = v.getId();<br />switch (buttonID) {<br />case R.id.playButton:<br />mWebView.loadUrl("javascript:Play()");<br />showFlashProgress(5);<br />break;<br />case R.id.pauseButton:<br />mWebView.loadUrl("javascript:Pause()");<br />break;<br />default:<br />break;<br />}<br />}<br />};<br />public void showFlashProgress(float progressSize){<br />int size = (int)progressSize;<br />//Toast.makeText(this, size+"", Toast.LENGTH_SHORT).show();<br />mProgressBarHorizontal.setProgress(size);<br />}<br />@Override<br />protected void onPause(){<br />super.onPause();<br />mWebView.pauseTimers();<br />if(isFinishing()){<br />mWebView.loadUrl("about:blank");<br />setContentView(new FrameLayout(this));<br />}<br />}<br />@Override<br />protected void onResume(){<br />super.onResume();<br />mWebView.resumeTimers();<br />}<br />private final class CallJava{<br />public void consoleFlashProgress(float progressSize){<br />showFlashProgress(progressSize);<br />}<br />}<br />private void startThread(){<br />//通過線程來改變ProgressBar的值<br />new Thread(new Runnable() {<br />@Override<br />public void run() {<br />while(!Thread.currentThread().isInterrupted()){<br />try {<br />Thread.sleep(2000);<br />Message message = new Message();<br />message.what = MainActivity.PROGRESSBARSIZE;<br />MainActivity.this.myMessageHandler.sendMessage(message);<br />} catch (Exception e) {<br />Thread.currentThread().interrupt();<br />}<br />}<br />}<br />}).start();<br />}<br />Handler myMessageHandler = new Handler() {<br />@Override<br />public void handleMessage(Message msg) {<br />switch (msg.what) {<br />case MainActivity.PROGRESSBARSIZE:<br />mWebView.loadUrl("javascript:showcount()");<br />break;<br />default:<br />break;<br />}<br />super.handleMessage(msg);<br />}<br />};<br />} 

 

4. main.xml

 

<?xml version="1.0" encoding="utf-8"?><br /><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"<br />android:orientation="vertical" android:layout_width="fill_parent"<br />android:layout_height="fill_parent"><br /><WebView android:id="@+id/webView01" android:layout_width="wrap_content"<br />android:layout_height="wrap_content" /></p><p><ProgressBar android:id="@+id/progress_horizontal"<br />style="?android:attr/progressBarStyleHorizontal" android:layout_width="fill_parent"<br />android:layout_height="wrap_content" android:max="100"<br />android:progress="0" android:secondaryProgress="0" /></p><p><LinearLayout android:orientation="horizontal"<br />android:layout_width="fill_parent" android:layout_height="wrap_content"><br /><Button android:id="@+id/playButton" android:layout_width="wrap_content"<br />android:layout_height="wrap_content" android:text="play" /><br /><Button android:id="@+id/pauseButton" android:layout_width="wrap_content"<br />android:layout_height="wrap_content" android:text="pause" /><br /></LinearLayout><br /></LinearLayout>  

 

5. index.html

 

<mce:script src="play.js" mce_src="play.js"></mce:script><br /><table border="0" cellpadding="0" cellspacing="1" bgcolor="#000000"><br /> <tr><br /> <td><br /> <object id="movie" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"<br /> codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0"<br /> align="middle"><br /> <param name="movie" value="about:blank" /><br /> <param name="quality" value="high" /><br /> </object><br /> </td><br /> </tr><br /></table></p><p> <!-- <a href="javascript:CallJava.consoleFlashProgress(3)" mce_href="javascript:CallJava.consoleFlashProgress(3)">add Progress</a><br /> <a href="#" mce_href="#" onClick="showcount()">add Progress</a><br /> --><br /><mce:script type="text/javascript"><!--<br /> loadSWF("testFlash.swf","800","480"); //loadSWF("flash地址","寬度","高度")<br />// --></mce:script><br />  

 

6.play.js

 

var total;//定義flash影片總楨數<br />var frame_number;//定義flash影片當前楨數<br />//以下是捲軸圖片拖動程式<br />var dragapproved=false;<br />var z,x,y<br />//動態顯示播放影片的當前楨/總楨數(進度條顯示)<br />function showcount(){<br /> //已測可用CallJava.consoleFlashProgress(5);<br /> total = movie.TotalFrames;<br /> frame_number=movie.CurrentFrame();<br /> frame_number++;<br /> var progressSize = 100*(frame_number/movie.TotalFrames());<br /> CallJava.consoleFlashProgress(progressSize);<br />}<br />//播放影片<br />function Play(){<br /> movie.Play();<br />}<br />//暫停播放<br />function Pause(){<br /> movie.StopPlay();<br />}<br />//開始載入flash影片<br />function loadSWF(fsrc,fwidth,fheight){<br /> movie.LoadMovie(0, fsrc);<br /> movie.width=fwidth;<br /> movie.height=fheight;<br /> frame_number=movie.CurrentFrame();<br /> jindu();<br />} 

 

通過項目結構,和代碼,就可以將你的flash嵌入到你的應用程式之中,還等什麼呢?馬上動手實驗吧。。。。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.