⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 package-summary.html

📁 J2ME Mobile3D API,高性能手机3D开发的api
💻 HTML
📖 第 1 页 / 共 4 页
字号:
 
<span class="example_proclamation">import</span> javax.microedition.lcdui.<span class="example_class">Graphics</span>;
<span class="example_proclamation">import</span> javax.microedition.lcdui.<span class="example_class">Display</span>;
<span class="example_proclamation">import</span> javax.microedition.lcdui.<span class="example_class">Displayable</span>;
<span class="example_proclamation">import</span> javax.microedition.lcdui.<span class="example_class">Command</span>;
<span class="example_proclamation">import</span> javax.microedition.lcdui.<span class="example_class">Canvas</span>;
<span class="example_proclamation">import</span> javax.microedition.lcdui.<span class="example_class">CommandListener</span>;
 
<span class="example_proclamation">import</span> java.util.<span class="example_class">Timer</span>;
<span class="example_proclamation">import</span> java.util.<span class="example_class">TimerTask</span>;
 
<span class="example_proclamation">import</span> javax.microedition.m3g.*;
 
<span class="example_modifier">public</span> <span class="example_proclamation">class</span> <span class="example_class">JesterTestlet</span> <span class="example_proclamation">extends</span> <span class="example_class">MIDlet</span> <span class="example_proclamation">implements</span> <span class="example_class">CommandListener</span>
{
    <span class="example_modifier">private</span> <span class="example_class">Display</span> myDisplay = <span class="example_literal">null</span>;
    <span class="example_modifier">private</span> <span class="example_class">JesterCanvas</span> myCanvas = <span class="example_literal">null</span>;
 
    <span class="example_modifier">private</span> <span class="example_class">Timer</span> myRefreshTimer = <span class="example_reserved">new</span> <span class="example_class">Timer</span>();
    <span class="example_modifier">private</span> <span class="example_class">TimerTask</span> myRefreshTask = <span class="example_literal">null</span>;
 
    <span class="example_modifier">private</span> <span class="example_class">Command</span> exitCommand = <span class="example_reserved">new</span> <span class="example_class">Command</span>(<span class="example_string">"Exit"</span>, <span class="example_class">Command</span>.<span class="example_constant">ITEM</span>, 1);
 
    <span class="example_modifier">private</span> <span class="example_class">World</span> myWorld = <span class="example_literal">null</span>;
 
    <span class="example_comment">/**
     * JesterTestlet - default constructor.
     */</span>
    <span class="example_modifier">public</span> <span class="example_class">JesterTestlet</span>()
    {
        <span class="example_comment">// Set up the user interface.</span>
        myDisplay = <span class="example_class">Display</span>.getDisplay(<span class="example_reserved">this</span>);
        myCanvas = <span class="example_reserved">new</span> <span class="example_class">JesterCanvas</span>(<span class="example_reserved">this</span>);
        myCanvas.setCommandListener(<span class="example_reserved">this</span>);
        myCanvas.addCommand(exitCommand);
    }
 
    <span class="example_comment">/**
     * startApp()
     */</span>
    <span class="example_modifier">public</span> <span class="example_type">void</span> startApp() <span class="example_proclamation">throws</span> <span class="example_class">MIDletStateChangeException</span>
    {
        myDisplay.setCurrent(myCanvas);
 
        <span class="example_control">try</span>
        {
            <span class="example_comment">// Load a file.</span>
            <span class="example_class">Object</span>3D[] roots = 
                <span class="example_class">Loader</span>.load(<span class="example_string">"http://www.example.com/m3g/samples/simple.m3g"</span>);
                
            <span class="example_comment">// Assume the world is the first root node loaded.</span>
            myWorld = (<span class="example_class">World</span>)roots[0];
 
            <span class="example_comment">// Force a repaint so that we get the update loop started.</span>
            myCanvas.repaint();
        }
        <span class="example_control">catch</span>(<span class="example_class">Exception</span> e)
        {
            e.printStackTrace();
        }
    }
 
    <span class="example_comment">/**
     * pauseApp()
     */</span>
    <span class="example_modifier">public</span> <span class="example_type">void</span> pauseApp()
    {
        <span class="example_comment">// Release resources.</span>
        myWorld = <span class="example_literal">null</span>;
    }
 
    <span class="example_comment">/**
     * destroyApp()
     */</span>
    <span class="example_modifier">public</span> <span class="example_type">void</span> destroyApp(<span class="example_type">boolean</span> unconditional) <span class="example_proclamation">throws</span> <span class="example_class">MIDletStateChangeException</span>
    {
        myRefreshTimer.cancel();
        myRefreshTimer = <span class="example_literal">null</span>;
 
        <span class="example_comment">// Release resources.</span>
        myWorld = <span class="example_literal">null</span>;
    }
 
    <span class="example_comment">/**
     * MIDlet paint method.
     */</span>
    <span class="example_modifier">public</span> <span class="example_type">void</span> paint(<span class="example_class">Graphics</span> g)
    {
        <span class="example_comment">// We are not fully initialised yet; just return.</span>
        <span class="example_control">if</span>(myCanvas == <span class="example_literal">null</span> || myWorld == <span class="example_literal">null</span>)
            <span class="example_control">return</span>;
 
        <span class="example_comment">// Delete any pending refresh tasks.</span>
        <span class="example_control">if</span>(myRefreshTask != <span class="example_literal">null</span>)
        {
            myRefreshTask.cancel();
            myRefreshTask = <span class="example_literal">null</span>;
        }
 
        <span class="example_comment">// Get the current time.</span>
        <span class="example_type">long</span> currentTime = <span class="example_class">System</span>.currentTimeMillis();
        <span class="example_comment">// Update the world to the current time.</span>
        <span class="example_type">int</span> validity = myWorld.animate((<span class="example_type">int</span>)currentTime);
 
        <span class="example_comment">// Render to our Graphics.</span>
        <span class="example_class">Graphics</span>3D myGraphics3D = <span class="example_class">Graphics</span>3D.getInstance();
        myGraphics3D.bindTarget(g);
        myGraphics3D.render(myWorld);
        myGraphics3D.releaseTarget();
 
        <span class="example_comment">// Subtract time taken to do the update.</span>
        validity -= <span class="example_class">System</span>.currentTimeMillis() - currentTime;
 
        <span class="example_control">if</span>(validity &lt; 1)
        {    <span class="example_comment">// The validity is too small; allow a minimum of 1ms.</span>
            validity = 1;
        }
 
        <span class="example_comment">// If the validity is not infinite schedule a refresh task.</span>
        <span class="example_control">if</span>(validity &lt; 0x7fffffff)
        {
            <span class="example_comment">// Create a new refresh task.</span>
            myRefreshTask = <span class="example_reserved">new</span> <span class="example_class">RefreshTask</span>();
 
            <span class="example_comment">// Schedule an update.</span>
            myRefreshTimer.schedule(myRefreshTask, validity);
        }
    }
 
    <span class="example_comment">/**
     * Handle commands.
     */</span>
    <span class="example_modifier">public</span> <span class="example_type">void</span> commandAction(<span class="example_class">Command</span> cmd, <span class="example_class">Displayable</span> disp)
    {
        <span class="example_control">if</span> (cmd == exitCommand)
        {
            <span class="example_control">try</span>
            {
                destroyApp(<span class="example_literal">false</span>);
                notifyDestroyed();
            }
            <span class="example_control">catch</span>(<span class="example_class">Exception</span> e)
            {
                e.printStackTrace();
            }
        }
    }
 
    <span class="example_comment">/**
     * Inner class for refreshing the view.
     */</span>
    <span class="example_modifier">private</span> <span class="example_proclamation">class</span> <span class="example_class">RefreshTask</span> <span class="example_proclamation">extends</span> <span class="example_class">TimerTask</span>
    {
        <span class="example_modifier">public</span> <span class="example_type">void</span> run()
        {
            <span class="example_comment">// Get the canvas to repaint itself.</span>
            myCanvas.repaint();
        }
    }
 
    <span class="example_comment">/**
     * Inner class for handling the canvas.
     */</span>
    <span class="example_proclamation">class</span> <span class="example_class">JesterCanvas</span> <span class="example_proclamation">extends</span> <span class="example_class">Canvas</span>
    {
        <span class="example_class">JesterTestlet</span> myTestlet;
 
        <span class="example_comment">/**
         * Construct a new canvas
         */</span>
        <span class="example_class">JesterCanvas</span>(<span class="example_class">JesterTestlet</span> <span class="example_class">Testlet</span>) { myTestlet = <span class="example_class">Testlet</span>; }
 
        <span class="example_comment">/**
         * Initialize self.
         */</span>
        <span class="example_type">void</span> init() { }
 
        <span class="example_comment">/**
         * Cleanup and destroy.
         */</span>
        <span class="example_type">void</span> destroy() { }
 
        <span class="example_comment">/**
         * Ask myTestlet to paint itself
         */</span>
        <span class="example_modifier">protected</span> <span class="example_type">void</span> paint(<span class="example_class">Graphics</span> g) { myTestlet.paint(g); }
    }
}</pre></DD></DD></DL>
<HR>

<!-- ========== START OF NAVBAR ========== -->
<A NAME="navbar_bottom"><!-- --></A><TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
<TR>
<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A><TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
<EM><B>Nov 19, 2003</B></EM></EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;PREV PACKAGE&nbsp;
&nbsp;NEXT PACKAGE</FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../index.html" TARGET="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="package-summary.html" TARGET="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT>  <!--  if(window==top) {    document.writeln('<A HREF="../../../allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');  }  //--></SCRIPT><NOSCRIPT><A HREF="../../../allclasses-noframe.html" TARGET=""><B>All Classes</B></A></NOSCRIPT></FONT></TD>
</TR>
</TABLE>
<!-- =========== END OF NAVBAR =========== -->

<HR>
<EM>Copyright &copy 2003 Nokia Corporation. See the <a href="../../../overview-summary.html#Copyright">Copyright Notice</a> for details.</EM>
</BODY>
</HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -