Android中加入flash程序

      无论如何,我们需要一个android2.2的平板电脑或者android2.2的手机一部,同时我们的android平台需要安装最新的flash for android 的插件。  具备了这些之后,我们就可以将flash通过webView的方式嵌入到我们自己的程序中了。

<IGNORE_JS_OP>QQ截图未命名.png.thumb.jpg

 

 


     需要的知识:JavaScript知识、java知识、html知识,了解css的话,那最好。
MainActivity .java  主类

  1. view plaincopy to clipboardprint?
  2. package com.geolo.js.falsh;   
  3. import android.app.Activity;   
  4. import android.os.Bundle;   
  5. import android.os.Handler;   
  6. import android.os.Message;   
  7. import android.view.View;   
  8. import android.webkit.WebChromeClient;   
  9. import android.webkit.WebSettings.PluginState;   
  10. import android.webkit.WebView;   
  11. import android.widget.Button;   
  12. import android.widget.FrameLayout;   
  13. import android.widget.ProgressBar;   
  14. public class MainActivity extends Activity {   
  15.     private WebView mWebView;   
  16.     private Button playButton,pauseButton;   
  17.     private ProgressBar mProgressBarHorizontal;   
  18.     private final static int PROGRESSBARSIZE = 0x0000;   
  19.     @Override  
  20.     public void onCreate(Bundle savedInstanceState) {   
  21.         super.onCreate(savedInstanceState);   
  22.         setContentView(R.layout.main);   
  23.         mWebView = (WebView)findViewById(R.id.webView01);   
  24.         mProgressBarHorizontal = (ProgressBar)findViewById(R.id.progress_horizontal);   
  25.         this.setProgress(mProgressBarHorizontal.getProgress() * 100);   
  26.         //this.setSecondaryProgress(mProgressBarHorizontal.getSecondaryProgress() * 100);   
  27.         playButton = (Button)findViewById(R.id.playButton);   
  28.         pauseButton = (Button)findViewById(R.id.pauseButton);   
  29.         playButton.setOnClickListener(buttonListener);   
  30.         pauseButton.setOnClickListener(buttonListener);   
  31.         mWebView.getSettings().setJavaScriptEnabled(true);     
  32.         //mWebView.getSettings().setPluginsEnabled(true);   
  33.         mWebView.getSettings().setPluginState(PluginState.ON);   
  34.         mWebView.setWebChromeClient(new WebChromeClient());   
  35.         mWebView.addJavascriptInterface(new CallJava(), \"CallJava\");   
  36.         mWebView.loadUrl(\"file:///android_asset/sample/index.html\");   
  37.         startThread();   
  38.     }   
  39.     Button.OnClickListener buttonListener = new Button.OnClickListener() {     
  40.         @Override  
  41.         public void onClick(View v) {   
  42.             int buttonID = v.getId();   
  43.             switch (buttonID) {   
  44.             case R.id.playButton:   
  45.                 mWebView.loadUrl(\"javascript:Play()\");   
  46.                 showFlashProgress(5);   
  47.                 break;   
  48.             case R.id.pauseButton:   
  49.                 mWebView.loadUrl(\"javascript:Pause()\");   
  50.                 break;   
  51.             default:   
  52.                 break;   
  53.             }   
  54.         }   
  55.     };   
  56.     public void showFlashProgress(float progressSize){   
  57.         int size = (int)progressSize;   
  58.         //Toast.makeText(this, size+\"\", Toast.LENGTH_SHORT).show();   
  59.         mProgressBarHorizontal.setProgress(size);   
  60.     }   
  61.     @Override  
  62.     protected void onPause(){   
  63.         super.onPause();   
  64.         mWebView.pauseTimers();   
  65.         if(isFinishing()){   
  66.             mWebView.loadUrl(\"about:blank\");   
  67.             setContentView(new FrameLayout(this));   
  68.         }   
  69.     }   
  70.     @Override  
  71.     protected void onResume(){   
  72.         super.onResume();   
  73.         mWebView.resumeTimers();   
  74.     }   
  75.     private final class CallJava{   
  76.         public void consoleFlashProgress(float  progressSize){   
  77.             showFlashProgress(progressSize);   
  78.         }   
  79.     }   
  80.     private void startThread(){   
  81.         //通过线程来改变ProgressBar的值   
  82.         new Thread(new Runnable() {   
  83.             @Override  
  84.             public void run() {   
  85.                 while(!Thread.currentThread().isInterrupted()){   
  86.                     try {   
  87.                         Thread.sleep(2000);   
  88.                         Message message = new Message();   
  89.                         message.what = MainActivity.PROGRESSBARSIZE;   
  90.                         MainActivity.this.myMessageHandler.sendMessage(message);   
  91.                     } catch (Exception e) {   
  92.                         Thread.currentThread().interrupt();   
  93.                     }   
  94.                 }   
  95.             }   
  96.         }).start();   
  97.     }   
  98.     Handler myMessageHandler = new Handler() {   
  99.         @Override  
  100.         public void handleMessage(Message msg) {   
  101.             switch (msg.what) {   
  102.             case MainActivity.PROGRESSBARSIZE:   
  103.                 mWebView.loadUrl(\"javascript:showcount()\");   
  104.                 break;   
  105.             default:   
  106.                 break;   
  107.             }   
  108.             super.handleMessage(msg);   
  109.         }   
  110.     };   
  111. }
复制代码

main.xml

  1. view plaincopy to clipboardprint?
  2. <?xml version=\"1.0\" encoding=\"utf-8\"?>  
  3. <LinearLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"  
  4.     android:orientation=\"vertical\" android:layout_width=\"fill_parent\"  
  5.     android:layout_height=\"fill_parent\">  
  6.     <WebView android:id=\"@+id/webView01\" android:layout_width=\"wrap_content\"  
  7.         android:layout_height=\"wrap_content\" />  
  8.            
  9.     <ProgressBar android:id=\"@+id/progress_horizontal\"  
  10.         style=\"?android:attr/progressBarStyleHorizontal\" android:layout_width=\"fill_parent\"  
  11.         android:layout_height=\"wrap_content\" android:max=\"100\"  
  12.         android:progress=\"0\" android:secondaryProgress=\"0\" />  
  13.            
  14.     <LinearLayout android:orientation=\"horizontal\"  
  15.         android:layout_width=\"fill_parent\" android:layout_height=\"wrap_content\">  
  16.         <Button android:id=\"@+id/playButton\" android:layout_width=\"wrap_content\"  
  17.             android:layout_height=\"wrap_content\" android:text=\"play\" />  
  18.         <Button android:id=\"@+id/pauseButton\" android:layout_width=\"wrap_content\"  
  19.             android:layout_height=\"wrap_content\" android:text=\"pause\" />  
  20.     </LinearLayout>  
  21. </LinearLayout>  
复制代码

index.html

  1.     view plaincopy to clipboardprint?
  2.     <mce:script src=\"play.js\" mce_src=\"play.js\"></mce:script>  
  3.     <table border=\"0\" cellpadding=\"0\" cellspacing=\"1\" bgcolor=\"#000000\">  
  4.       <tr>  
  5.         <td>  
  6.          <object id=\"movie\" classid=\"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000\"   
  7.              codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0\"   
  8.             align=\"middle\">  
  9.            <param name=\"movie\" value=\"about:blank\" />  
  10.            <param name=\"quality\" value=\"high\" />  
  11.          </object>  
  12.         </td>  
  13.       </tr>  
  14.     </table>  
  15.          
  16.          
  17.        <!-- <a href=\"javascript:CallJava.consoleFlashProgress(3)\" mce_href=\"javascript:CallJava.consoleFlashProgress(3)\">add Progress</a>   
  18.        <a href=\"#\" mce_href=\"#\" onClick=\"showcount()\">add Progress</a>   
  19.         -->  
  20.     <mce:script type=\"text/javascript\"><!--   
  21.       loadSWF(\"testFlash.swf\",\"800\",\"480\"); //loadSWF(\"flash地址\",\"宽度\",\"高度\")   
  22.     // --></mce:script>  
复制代码

play.js

  1.     view plaincopy to clipboardprint?
  2.     var total;//定义flash影片总桢数   
  3.     var frame_number;//定义flash影片当前桢数   
  4.     //以下是滚动条图片拖动程序   
  5.     var dragapproved=false;   
  6.     var z,x,y   
  7.     //动态显示播放影片的当前桢/总桢数(进度条显示)   
  8.     function showcount(){   
  9.         //已测可用CallJava.consoleFlashProgress(5);   
  10.         total = movie.TotalFrames;   
  11.         frame_number=movie.CurrentFrame();   
  12.         frame_number++;   
  13.         var progressSize = 100*(frame_number/movie.TotalFrames());   
  14.         CallJava.consoleFlashProgress(progressSize);   
  15.     }   
  16.     //播放影片   
  17.     function Play(){   
  18.         movie.Play();   
  19.     }   
  20.     //暂停播放   
  21.     function Pause(){   
  22.     movie.StopPlay();   
  23.     }   
  24.     //开始载入flash影片   
  25.     function loadSWF(fsrc,fwidth,fheight){   
  26.     movie.LoadMovie(0, fsrc);   
  27.     movie.width=fwidth;   
  28.     movie.height=fheight;   
  29.     frame_number=movie.CurrentFrame();   
  30.     jindu();   
  31.     }  
posted @ 2012-05-19 15:05  精灵博客园  阅读(473)  评论(0编辑  收藏  举报