【第22期】观点:IT 行业加班,到底有没有价值?

将flash嵌入你的程序中

转载 2012年03月28日 14:15:44

原文地址:http://blog.csdn.net/geolo/article/details/6081456 

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

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

 

  不多说,和以前一样,直接上代码,上图。不解释太多。。。。

 

1. 项目结构图

 

 

2. 程序运行图

 

3.MainActivity .java  主类

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

 

4. main.xml

 

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

 

5. index.html

 

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

 

6.play.js

 

[javascript] view plaincopyprint?
  1. var total;//定义flash影片总桢数  
  2. var frame_number;//定义flash影片当前桢数  
  3. //以下是滚动条图片拖动程序  
  4. var dragapproved=false;  
  5. var z,x,y  
  6. //动态显示播放影片的当前桢/总桢数(进度条显示)  
  7. function showcount(){  
  8.     //已测可用CallJava.consoleFlashProgress(5);  
  9.     total = movie.TotalFrames;  
  10.     frame_number=movie.CurrentFrame();  
  11.     frame_number++;  
  12.     var progressSize = 100*(frame_number/movie.TotalFrames());  
  13.     CallJava.consoleFlashProgress(progressSize);  
  14. }  
  15. //播放影片   
  16. function Play(){  
  17.     movie.Play();  
  18. }  
  19. //暂停播放  
  20. function Pause(){  
  21.  movie.StopPlay();  
  22. }  
  23. //开始载入flash影片  
  24. function loadSWF(fsrc,fwidth,fheight){  
  25.  movie.LoadMovie(0, fsrc);  
  26.  movie.width=fwidth;  
  27.  movie.height=fheight;  
  28.  frame_number=movie.CurrentFrame();  
  29.  jindu();  
  30. }  
 

举报

相关文章推荐

在WPF中嵌入Flash(或Flex程序)

在最近的一个WPF应用中,有这样一个需求:WPF本身生成数据,然后调用Flex编译生成的Flash完成数据的树形结构可视化显示。这就需要在WPF中嵌入Flash,下面详细介绍一下具体的做法。 开发环...

在VC中使用 Flash 美化你的程序

源代码下载代码运行效果图   利用flash可以作出很漂亮的动画,想不想让自己的程序也有这样漂亮的界面呢? ^_^,其实,要做到这点也不难。在这里将介绍怎样把falsh制作的界面嵌入到自己的程序中,并让flash动画和自己的程序进行交互。  我们分为两步来走:<b

程序员升职加薪指南!还缺一个“证”!

CSDN出品,立即查看!

Swing 程序中嵌入 网页浏览器/Flash Player 等

在 Swing 程序中嵌入原生网页浏览器 和 Flash Player BY Jackpk: DJNativeSwing已经测试,很好用 ref url: <a href="http://liuwangxia.j

用OpenJTAG烧写程序到Flash—— 韦东山嵌入式Linux视频学习笔记03

用OpenJTAG烧写Flash(通过Oflash软件)

[转载]SWFObject: 基于Javascript的Flash媒体版本检测与嵌入模块

SWFObject: 基于Javascript的Flash媒体版本检测与嵌入模块 原文:SWFObject: Javascript Flash Player detection and embed script 翻译:Awflasher.com 汉化地址:<a hre
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)