home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2000 February / maximum-cd-2000-02.iso / Flash 4 / data1.cab / App_Files / Players / Flash_Player_Java(tm)_Edition / Flash.ZIP / ScriptPlayer.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-04-13  |  7.0 KB  |  681 lines

  1. import java.io.IOException;
  2. import java.io.InputStream;
  3.  
  4. final class ScriptPlayer extends SParser implements Runnable {
  5.    // $FF: renamed from: ┼¼ int
  6.    int field_0;
  7.    // $FF: renamed from: ┼¡ int
  8.    int field_1;
  9.    // $FF: renamed from: ┼« int
  10.    int field_2;
  11.    // $FF: renamed from: ┼» int
  12.    int field_3;
  13.    // $FF: renamed from: ┼░ int
  14.    int field_4;
  15.    // $FF: renamed from: ┼▒ Rect
  16.    Rect field_5;
  17.    // $FF: renamed from: ┼▓ int
  18.    int field_6;
  19.    // $FF: renamed from: ┼│ int
  20.    int field_7;
  21.    // $FF: renamed from: ┼┤ int
  22.    int field_8;
  23.    // $FF: renamed from: ┼╡ int
  24.    int field_9;
  25.    // $FF: renamed from: ┼╢ int
  26.    int field_10;
  27.    // $FF: renamed from: ┼╖ byte[]
  28.    byte[] field_11;
  29.    // $FF: renamed from: ┼╕ boolean
  30.    boolean field_12;
  31.    // $FF: renamed from: ┼╣ boolean
  32.    boolean field_13;
  33.    // $FF: renamed from: ┼║ int
  34.    int field_14;
  35.    // $FF: renamed from: ┼╗ Semaphore
  36.    Semaphore field_15;
  37.    // $FF: renamed from: ─ì DisplayList
  38.    DisplayList field_16;
  39.    public int[] actionList;
  40.    public int nActions;
  41.    // $FF: renamed from: ┼╝ SCharacter[]
  42.    SCharacter[] field_17;
  43.    // $FF: renamed from: ├£ Flash
  44.    Flash field_18;
  45.    // $FF: renamed from: ┼╜ Sound
  46.    Sound field_19;
  47.    // $FF: renamed from: ┼╛ int
  48.    int field_20;
  49.    // $FF: renamed from: ┼┐ boolean
  50.    boolean field_21;
  51.    // $FF: renamed from: ╞Ç int
  52.    private int field_22;
  53.    // $FF: renamed from: ╞ü int
  54.    private int field_23;
  55.    // $FF: renamed from: ╞é int
  56.    private static int field_24;
  57.    // $FF: renamed from: ╞â int
  58.    private int field_25;
  59.    // $FF: renamed from: ╞ä int
  60.    private int field_26;
  61.    // $FF: renamed from: ╞à java.io.InputStream
  62.    private InputStream field_27;
  63.    // $FF: renamed from: ╞å boolean
  64.    private boolean field_28;
  65.  
  66.    ScriptPlayer() {
  67.       this.field_11 = new byte[8];
  68.       this.field_15 = new Semaphore(false);
  69.       this.actionList = new int[16];
  70.       this.field_17 = new SCharacter[64];
  71.       this.field_19 = new Sound(0, 0, (byte[])null, 0);
  72.       this.field_5 = new Rect(0, 0, 600, 600);
  73.       this.ClearScript();
  74.    }
  75.  
  76.    ScriptPlayer(Flash var1) {
  77.       this();
  78.       this.field_18 = var1;
  79.    }
  80.  
  81.    public final boolean ScriptComplete() {
  82.       return super.╞⌐ != null && this.field_3 >= this.field_4;
  83.    }
  84.  
  85.    public final boolean GotHeader() {
  86.       return this.field_12;
  87.    }
  88.  
  89.    public final int GetFrame() {
  90.       return this.field_14;
  91.    }
  92.  
  93.    public final boolean AtEnd() {
  94.       return this.field_13;
  95.    }
  96.  
  97.    // $FF: renamed from: ┼¼ (SObject, int) void
  98.    void method_0(SObject var1, int var2) {
  99.       int var3 = var1.├₧;
  100.       if (var3 != var2 && (var2 == 1 || var3 <= var2)) {
  101.          if (var1.╞è.├å > 0) {
  102.             SParser var4 = new SParser();
  103.             byte[] var5 = super.╞⌐;
  104.             int var6 = var1.╞è.├å;
  105.             var4.╞⌐ = var5;
  106.             var4.╞¬ = var6;
  107.  
  108.             for(int var11 = 1; var11 < var2; var11 <<= 1) {
  109.                var6 = var4.╞⌐();
  110.                if (var6 > 0) {
  111.                   var4.╞▒((int[])null, (int[])null, true);
  112.                }
  113.             }
  114.  
  115.             var6 = var4.╞⌐();
  116.             if (var6 > 0) {
  117.                SCharacter var7 = this.FindCharacter(var6);
  118.                if (var7 == null || var7.├â != 5) {
  119.                   return;
  120.                }
  121.  
  122.                int[] var8 = new int[1];
  123.                int[] var9 = new int[1];
  124.                Sound var10 = (Sound)var7.├ê;
  125.                var4.╞▒(var8, var9, false);
  126.                if (var10.╞Æ()) {
  127.                   if ((var9[0] & 2) != 0) {
  128.                      var10.stop();
  129.                      return;
  130.                   }
  131.  
  132.                   if ((var9[0] & 1) != 0 && !this.field_21) {
  133.                      var10.╞æ(var8[0]);
  134.                      return;
  135.                   }
  136.  
  137.                   if (!this.field_21) {
  138.                      var10.╞É(var8[0]);
  139.                   }
  140.                }
  141.             }
  142.          }
  143.  
  144.       }
  145.    }
  146.  
  147.    // $FF: renamed from: ┼¡ () void
  148.    void method_1() {
  149.       for(Sound var1 = this.field_19; var1 != null; var1 = var1.├Ç) {
  150.          var1.stop();
  151.       }
  152.  
  153.       SoundMixer.StopAllStreams();
  154.    }
  155.  
  156.    // $FF: renamed from: ┼« () void
  157.    void method_2() {
  158.       int var1 = ((SParser)this).╞⌐();
  159.       SCharacter var2 = this.FindCharacter(var1);
  160.       if (var2 != null && var2.├â == 5) {
  161.          int[] var3 = new int[1];
  162.          int[] var4 = new int[1];
  163.          Sound var5 = (Sound)var2.├ê;
  164.          ((SParser)this).╞▒(var3, var4, false);
  165.          if (var5.╞Æ()) {
  166.             if ((var4[0] & 2) != 0) {
  167.                var5.stop();
  168.                return;
  169.             }
  170.  
  171.             if ((var4[0] & 1) != 0 && !this.field_21) {
  172.                var5.╞æ(var3[0]);
  173.                return;
  174.             }
  175.  
  176.             if (!this.field_21) {
  177.                var5.╞É(var3[0]);
  178.             }
  179.          }
  180.  
  181.       }
  182.    }
  183.  
  184.    public void FreeAll() {
  185.       if (this.field_16 != null) {
  186.          this.field_16.FreeAll();
  187.       }
  188.  
  189.       super.╞¬ = this.field_1;
  190.       this.field_14 = -1;
  191.       this.field_13 = false;
  192.    }
  193.  
  194.    public void ClearScript() {
  195.       this.FreeAll();
  196.       this.field_12 = false;
  197.       this.field_14 = -1;
  198.       this.field_13 = false;
  199.       this.field_3 = this.field_10 = 0;
  200.       this.field_4 = -1;
  201.       super.╞¬ = 0;
  202.       super.╞⌐ = null;
  203.       this.field_2 = 0;
  204.       this.nActions = 0;
  205.    }
  206.  
  207.    public SCharacter FindCharacter(int var1) {
  208.       SCharacter var2;
  209.       for(var2 = this.field_17[var1 & 63]; var2 != null && var2.├é != var1; var2 = var2.├Ç) {
  210.       }
  211.  
  212.       return var2;
  213.    }
  214.  
  215.    // $FF: renamed from: ┼» (int) SCharacter
  216.    private SCharacter method_3(int var1) {
  217.       SCharacter var2 = new SCharacter();
  218.       if (var2 != null) {
  219.          var2.├Ç = this.field_17[var1 & 63];
  220.          this.field_17[var1 & 63] = var2;
  221.          var2.├ü = this;
  222.          var2.├é = var1;
  223.       }
  224.  
  225.       return var2;
  226.    }
  227.  
  228.    // $FF: renamed from: ┼░ (int) void
  229.    private void method_4(int var1) {
  230.       Object var2 = null;
  231.       SCharacter var10000 = this.field_17[var1 & 63];
  232.    }
  233.  
  234.    // $FF: renamed from: ┼▒ () void
  235.    private void method_5() {
  236.       int var1 = ((SParser)this).╞⌐();
  237.       if (this.FindCharacter(var1) == null) {
  238.          SCharacter var2 = this.method_3(var1);
  239.          var2.├â = 0;
  240.          var2.├à = ((SParser)this).╞«();
  241.          var2.├ä = super.╞¬;
  242.       }
  243.    }
  244.  
  245.    private void PlaceObject() {
  246.       int var1 = ((SParser)this).╞⌐();
  247.       int var2 = ((SParser)this).╞⌐();
  248.       SCharacter var3 = this.FindCharacter(var1);
  249.       Matrix var4 = ((SParser)this).╞»();
  250.       if (super.╞¬ < super.╞½) {
  251.          ColorTransform var5 = new ColorTransform();
  252.          ((SParser)this).╞¼(var5);
  253.          this.field_16.PlaceObject(var3, var1 << 16 | var2, var4, var5);
  254.       } else {
  255.          this.field_16.PlaceObject(var3, var1 << 16 | var2, var4, (ColorTransform)null);
  256.       }
  257.    }
  258.  
  259.    private void RemoveObject() {
  260.       int var1 = ((SParser)this).╞⌐();
  261.       int var2 = ((SParser)this).╞⌐();
  262.       this.field_16.RemoveObject(var1 << 16 | var2);
  263.    }
  264.  
  265.    // $FF: renamed from: ┼▓ () void
  266.    private void method_6() {
  267.       int var1 = ((SParser)this).╞⌐();
  268.       if (this.FindCharacter(var1) == null) {
  269.          SCharacter var2 = this.method_3(var1);
  270.          var2.├â = 2;
  271.          var2.├ä = super.╞¬;
  272.          var2.├à = new Rect();
  273.       }
  274.    }
  275.  
  276.    // $FF: renamed from: ┼│ (boolean) void
  277.    void method_7(boolean var1) {
  278.       int var2 = ((SParser)this).╞⌐();
  279.       SCharacter var3 = this.FindCharacter(var2);
  280.       if (var3 != null && var3.├â == 2) {
  281.          if (var1) {
  282.             var3.├å = super.╞¬;
  283.          } else {
  284.             var3.├ç = super.╞¬;
  285.          }
  286.       }
  287.    }
  288.  
  289.    // $FF: renamed from: ┼┤ (int) void
  290.    void method_8(int var1) {
  291.       int var2 = ((SParser)this).╞⌐();
  292.       if (this.FindCharacter(var2) == null) {
  293.          SCharacter var4 = this.method_3(var2);
  294.          if (var4 != null) {
  295.             var4.├â = 5;
  296.             int var5 = super.╞⌐[super.╞¬++] & 255;
  297.             int var6 = ((SParser)this).╞½();
  298.             Sound var3;
  299.             var4.├ê = var3 = new Sound(var5, var6, super.╞⌐, super.╞¬);
  300.             if (var3 == null) {
  301.                this.method_4(var2);
  302.             } else {
  303.                var4.├ä = super.╞¬;
  304.                if (var3.╞Å() > 16) {
  305.                   this.method_4(var2);
  306.                } else {
  307.                   var3.╞ÿ = var2;
  308.                   var3.├Ç = this.field_19.├Ç;
  309.                   this.field_19.├Ç = var3;
  310.                }
  311.             }
  312.          }
  313.       }
  314.    }
  315.  
  316.    // $FF: renamed from: ┼╡ () void
  317.    private void method_9() {
  318.       int var1 = ((SParser)this).╞⌐();
  319.       if (this.FindCharacter(var1) == null) {
  320.          SCharacter var2 = this.method_3(var1);
  321.          var2.├â = 3;
  322.          var2.├à = new Rect();
  323.          var2.├ä = super.╞¬;
  324.       }
  325.    }
  326.  
  327.    // $FF: renamed from: ┼╢ () void
  328.    private void method_10() {
  329.       int var1 = ((SParser)this).╞⌐();
  330.       if (this.FindCharacter(var1) == null) {
  331.          SCharacter var2 = this.method_3(var1);
  332.          var2.├â = 4;
  333.          var2.├à = ((SParser)this).╞«();
  334.          var2.├ä = super.╞¬;
  335.       }
  336.    }
  337.  
  338.    // $FF: renamed from: ┼╖ () void
  339.    private void method_11() {
  340.       if (this.field_2 == 0) {
  341.          if (!this.field_12) {
  342.             if (this.field_3 >= 21) {
  343.                this.field_5 = ((SParser)this).╞«();
  344.                this.field_6 = ((SParser)this).╞⌐() << 8;
  345.                this.field_7 = 65536000 / this.field_6;
  346.                this.field_8 = ((SParser)this).╞⌐();
  347.                this.field_26 = this.field_1 = super.╞¬;
  348.                this.field_14 = -1;
  349.                this.field_12 = true;
  350.             }
  351.          }
  352.       }
  353.    }
  354.  
  355.    public void PushData(byte[] var1, int var2) {
  356.       if (this.field_2 == 0) {
  357.          int var3 = 0;
  358.          if (this.field_4 < 0) {
  359.             int var4 = Math.min(8 - this.field_10, var2);
  360.             System.arraycopy(var1, var3, this.field_11, this.field_10, var4);
  361.             var3 += var4;
  362.             var2 -= var4;
  363.             this.field_10 += var4;
  364.             if (this.field_10 != 8) {
  365.                return;
  366.             }
  367.  
  368.             if (this.field_11[0] != 70 || this.field_11[1] != 87 || this.field_11[2] != 83) {
  369.                this.field_2 = -1;
  370.                return;
  371.             }
  372.  
  373.             this.field_9 = this.field_11[3];
  374.             this.field_4 = this.field_11[4] & 255 | (this.field_11[5] & 255) << 8 | (this.field_11[6] & 255) << 16 | (this.field_11[7] & 255) << 24;
  375.             this.field_4 -= 8;
  376.             super.╞⌐ = new byte[this.field_4];
  377.             if (super.╞⌐ == null) {
  378.                this.field_2 = -2;
  379.                return;
  380.             }
  381.          }
  382.  
  383.          if (this.field_3 + var2 > this.field_4) {
  384.             var2 = Math.min(var2, this.field_4 - this.field_3);
  385.          }
  386.  
  387.          System.arraycopy(var1, var3, super.╞⌐, this.field_3, var2);
  388.          this.field_3 += var2;
  389.          if (!this.field_12) {
  390.             this.method_11();
  391.          }
  392.  
  393.          this.field_15.├Ä();
  394.       }
  395.    }
  396.  
  397.    // $FF: renamed from: ┼╕ () int
  398.    private int method_12() {
  399.       if (field_24 == 0) {
  400.          if (("SLAV" + System.getProperty("java.version")).indexOf("SLAV1.0") == -1) {
  401.             field_24 = 1;
  402.          } else {
  403.             field_24 = 3;
  404.  
  405.             try {
  406.                Class.forName("sun.awt.image.ImageDecoder");
  407.                field_24 = 2;
  408.             } catch (ClassNotFoundException var1) {
  409.             }
  410.          }
  411.       }
  412.  
  413.       return field_24;
  414.    }
  415.  
  416.    // $FF: renamed from: ┼╣ (int, int) void
  417.    private void method_13(int var1, int var2) {
  418.       int var3 = ((SParser)this).╞⌐();
  419.       int var4 = 0;
  420.       int var5 = 0;
  421.       int var6 = 0;
  422.       int var7 = 0;
  423.       if (this.FindCharacter(var3) == null) {
  424.          SCharacter var8 = this.method_3(var3);
  425.          if (var8 != null) {
  426.             var8.├â = 1;
  427.             var8.├ä = super.╞¬ - 8;
  428.             if (var2 == 6) {
  429.                var6 = super.╞¬ + 2;
  430.                var7 = var1 - 4;
  431.                var4 = this.field_22;
  432.                var5 = this.field_23;
  433.             } else {
  434.                var4 = super.╞¬;
  435.  
  436.                for(int var9 = var4; var9 < super.╞½; ++var9) {
  437.                   if ((super.╞⌐[var9] & 255) == 255 && (super.╞⌐[var9 + 1] & 255) == 217) {
  438.                      var5 = var9 - var4;
  439.                      break;
  440.                   }
  441.                }
  442.  
  443.                for(int var10 = var4 + var5; var10 < super.╞½; ++var10) {
  444.                   if ((super.╞⌐[var10] & 255) == 255 && (super.╞⌐[var10 + 1] & 255) == 216) {
  445.                      var6 = var10 + 2;
  446.                      var7 = var1 - 6 - var5;
  447.                      break;
  448.                   }
  449.                }
  450.             }
  451.  
  452.             byte[] var14 = new byte[var5 + var7];
  453.             if (var14 != null) {
  454.                System.arraycopy(super.╞⌐, var4, var14, 0, var5);
  455.                System.arraycopy(super.╞⌐, var6, var14, var5, var7);
  456.                switch (this.method_12()) {
  457.                   case 1:
  458.                      var8.├ê = new Bitmap(this.field_18.getToolkit().createImage(var14), this.field_16);
  459.                      return;
  460.                   case 2:
  461.                      try {
  462.                         Object var15 = Class.forName("ImageSource").newInstance();
  463.                         if (var15 != null) {
  464.                            ((ImageSource)var15).─Ö(var14);
  465.                            ((ImageSource)var15).─Ü();
  466.                            Bitmap var11 = new Bitmap((ImageSource)var15, this.field_16);
  467.                            ((ImageSource)var15).─¢();
  468.                            var8.├ê = var11;
  469.                            return;
  470.                         }
  471.                         break;
  472.                      } catch (Exception var12) {
  473.                         var8.├ê = null;
  474.                         return;
  475.                      }
  476.                   case 3:
  477.                   default:
  478.                      var8.├ê = null;
  479.                      return;
  480.                }
  481.             } else {
  482.                var8.├ê = null;
  483.             }
  484.  
  485.          }
  486.       }
  487.    }
  488.  
  489.    // $FF: renamed from: ┼║ () int
  490.    private int method_14() {
  491.       if (super.╞⌐ == null) {
  492.          return -3;
  493.       } else if (this.field_2 != 0) {
  494.          return this.field_2;
  495.       } else if (this.field_13) {
  496.          return 2;
  497.       } else if (this.field_3 - super.╞¬ < 2) {
  498.          return 1;
  499.       } else {
  500.          int var1 = super.╞¬;
  501.          int var2 = ((SParser)this).╞⌐();
  502.          int var3 = var2 & 63;
  503.          if (var3 == 63) {
  504.             if (this.field_3 - super.╞¬ < 4) {
  505.                super.╞¬ = var1;
  506.                return 1;
  507.             }
  508.  
  509.             var3 = ((SParser)this).╞½();
  510.          }
  511.  
  512.          this.field_0 = super.╞¬ + var3;
  513.          super.╞½ = this.field_0;
  514.          if (this.field_0 > this.field_3) {
  515.             super.╞¬ = var1;
  516.             return 1;
  517.          } else {
  518.             switch (var2 >> 6) {
  519.                case 0:
  520.                   this.field_13 = true;
  521.                   break;
  522.                case 1:
  523.                   ++this.field_14;
  524.                   break;
  525.                case 2:
  526.                case 22:
  527.                   this.method_5();
  528.                   break;
  529.                case 3:
  530.                   this.method_4(((SParser)this).╞⌐());
  531.                   break;
  532.                case 4:
  533.                   this.PlaceObject();
  534.                   break;
  535.                case 5:
  536.                   this.RemoveObject();
  537.                   break;
  538.                case 6:
  539.                case 21:
  540.                   this.method_13(var3, var2 >> 6);
  541.                   break;
  542.                case 7:
  543.                   this.method_6();
  544.                   break;
  545.                case 8:
  546.                   this.field_23 = var3 - 2;
  547.                   this.field_22 = super.╞¬;
  548.                   break;
  549.                case 9:
  550.                   this.field_16.SetBackgroundColor(((SParser)this).╞¡(), 3);
  551.                   break;
  552.                case 10:
  553.                   this.method_9();
  554.                   break;
  555.                case 11:
  556.                   this.method_10();
  557.                   break;
  558.                case 12:
  559.                   if (this.nActions < 16) {
  560.                      this.actionList[this.nActions] = super.╞¬;
  561.                      ++this.nActions;
  562.                   }
  563.                case 13:
  564.                case 16:
  565.                case 18:
  566.                case 19:
  567.                case 20:
  568.                case 24:
  569.                case 25:
  570.                default:
  571.                   break;
  572.                case 14:
  573.                   this.method_8(var3);
  574.                   break;
  575.                case 15:
  576.                   this.method_2();
  577.                   break;
  578.                case 17:
  579.                   this.method_7(true);
  580.                   break;
  581.                case 23:
  582.                   this.method_7(false);
  583.             }
  584.  
  585.             super.╞¬ = this.field_0;
  586.             return this.field_2;
  587.          }
  588.       }
  589.    }
  590.  
  591.    public int DrawFrame(int var1) {
  592.       if (this.field_2 != 0) {
  593.          return this.field_2;
  594.       } else if (!this.field_12) {
  595.          return 1;
  596.       } else {
  597.          if (this.field_14 > var1) {
  598.             this.FreeAll();
  599.          }
  600.  
  601.          int var2;
  602.          for(var2 = 0; this.field_14 < var1 && var2 == 0; var2 = this.method_14()) {
  603.          }
  604.  
  605.          return var2;
  606.       }
  607.    }
  608.  
  609.    // $FF: renamed from: ┼╗ (int) boolean
  610.    boolean method_15(int var1) {
  611.       if (this.field_25 >= var1) {
  612.          return true;
  613.       } else if (this.field_28) {
  614.          return true;
  615.       } else if (super.╞⌐ != null && this.field_2 == -3) {
  616.          SParser var2 = new SParser();
  617.          byte[] var3 = super.╞⌐;
  618.          int var4 = this.field_26;
  619.          var2.╞⌐ = var3;
  620.          var2.╞¬ = var4;
  621.  
  622.          while(this.field_3 - var2.╞¬ >= 2) {
  623.             int var5 = var2.╞⌐();
  624.             var4 = var5 & 63;
  625.             if (var4 == 63) {
  626.                if (this.field_3 - super.╞¬ < 4) {
  627.                   return false;
  628.                }
  629.  
  630.                var4 = var2.╞½();
  631.             }
  632.  
  633.             var2.╞¬ += var4;
  634.             if (var2.╞¬ > this.field_3) {
  635.                return false;
  636.             }
  637.  
  638.             this.field_26 = var2.╞¬;
  639.             if (var5 >> 6 == 1) {
  640.                ++this.field_25;
  641.                if (this.field_25 >= var1) {
  642.                   return true;
  643.                }
  644.             }
  645.          }
  646.  
  647.          return false;
  648.       } else {
  649.          return false;
  650.       }
  651.    }
  652.  
  653.    public void loadScript(InputStream var1) {
  654.       this.ClearScript();
  655.       this.field_27 = var1;
  656.       Thread var2 = new Thread(this);
  657.       var2.setPriority(6);
  658.       var2.start();
  659.    }
  660.  
  661.    public void run() {
  662.       try {
  663.          byte[] var1 = new byte[512];
  664.  
  665.          while(true) {
  666.             int var2 = this.field_27.read(var1);
  667.             if (var2 < 0) {
  668.                this.field_27.close();
  669.                break;
  670.             }
  671.  
  672.             this.PushData(var1, var2);
  673.          }
  674.       } catch (IOException var3) {
  675.       }
  676.  
  677.       this.field_27 = null;
  678.       this.field_28 = true;
  679.    }
  680. }
  681.