9 Replies Latest reply on May 1, 2013 1:08 PM by kglad

    Math.sin(Math.PI)

    Ron Colmen Level 2

      It's a circular pre-loader. When I add the "SecondHalf" the preloader doesn't work and gives an error saying the script is causing the flash player to run slowly. How can I fix this?

      This code is in:  _root.first_mc._second_mc

       

      previewImage.onLoadProgress = function(targetMC, lBytes, tBytes) {

      //FirstHalf

      //This works only without "SecondHalf"

                percentDone=Math.round((lBytes / tBytes) * 100);

                _root.loaderPsnt_tx.percentDisplay.text = percentDone + "%";

       

      //SecondHalf

      //This is not working

            _root.mc_mask.clear();

            _root.mc_mask.beginFill(0xff0000, 100);

            _root.mc_mask.lineStyle(1, 0xff0000, 80);

            for (i=0; i>=c; i--) {

               x = Math.sin(Math.PI/90*i)*mask_ra;

               y = Math.cos(Math.PI/90*i)*mask_ra;

               _root.mc_mask.lineTo(x, y);

             }

            _root.mc_mask.endFill();

            c = Math.round(percentDone * (-1.84));

      };

       

      previewImage.onLoadStart = function(targetMC) {

                _root.loaderPsnt_tx._visible = _root.circle._visible = _root.mc_mask._visible = true;

                _root.circle.setMask(_root.mc_mask);

                var mask_ra:Number = (_root.circle._width / 1) * -1;

                var c:Number = 0;

                var percentDone:Number = 0;

      }; 

       

      previewImage.onLoadComplete = function(targetMC) {

                _root.loaderPsnt_tx._visible = _root.circle._visible = _root.mc_mask._visible = false;

      };

        • 1. Re: Math.sin(Math.PI)
          kglad Adobe Community Professional & MVP

          c isn't defined when your loadprogress first executes.

           

          try:

           

           

          previewImage.onLoadProgress = function(targetMC, lBytes, tBytes) {

          //FirstHalf

          //This works only without "SecondHalf"

                    percentDone=Math.round((lBytes / tBytes) * 100);

                    _root.loaderPsnt_tx.percentDisplay.text = percentDone + "%";

           

          //SecondHalf

          //This is not working

                _root.mc_mask.clear();

                _root.mc_mask.beginFill(0xff0000, 100);

                _root.mc_mask.lineStyle(1, 0xff0000, 80);

            c = Math.round(percentDone * (-1.84));

                for (i=0; i>=c; i--) {

                   x = Math.sin(Math.PI/90*i)*mask_ra;

                   y = Math.cos(Math.PI/90*i)*mask_ra;

                   _root.mc_mask.lineTo(x, y);

                 }

                _root.mc_mask.endFill();

             

          };

           

          previewImage.onLoadStart = function(targetMC) {

                    _root.loaderPsnt_tx._visible = _root.circle._visible = _root.mc_mask._visible = true;

                    _root.circle.setMask(_root.mc_mask);

                    var mask_ra:Number = (_root.circle._width / 1) * -1;

                    var c:Number = 0;

                    var percentDone:Number = 0;

          }; 

           

          previewImage.onLoadComplete = function(targetMC) {

                    _root.loaderPsnt_tx._visible = _root.circle._visible = _root.mc_mask._visible = false;

          };

          1 person found this helpful
          • 2. Re: Math.sin(Math.PI)
            Ron Colmen Level 2

            Thanks Kglad.

             

            Got rid of the error message now but still the masking is not working as expected. Any idea why? When I use this on the root and it works but it doesn't work in _root.first_mc._second_mc?

             

            percentDone + "%"; works though.

            • 3. Re: Math.sin(Math.PI)
              kglad Adobe Community Professional & MVP

              well, that code doesn't look like it would do anything useful.  what is it supposed to do?

               

              create wedge-shaped mask that increases from 0 degrees to 360?

              • 4. Re: Math.sin(Math.PI)
                Ron Colmen Level 2

                Yes.

                 

                The preloader works fine when both the code & the MCs are on the root. Is this issue related to the code being in _root.first_mc.second_mc and the preloader being on the root?

                • 5. Re: Math.sin(Math.PI)
                  kglad Adobe Community Professional & MVP

                  where's your moviecliploader and listener defined and what code is used to add the listener?

                  • 6. Re: Math.sin(Math.PI)
                    Ron Colmen Level 2

                    Moviecliploader and listener are defined in the same frame on _root.first_mc.second_mc

                     

                     

                    var previewMCL:MovieClipLoader = new MovieClipLoader();

                    var previewImage:Object = {};

                    previewMCL.addListener(previewImage);

                    previewImage.onLoadProgress = function(targetMC, lBytes, tBytes) {

                    ///doSomething

                    }

                     

                    RefLO.onComplete = function(file:FileReference):Void {

                    ////doSomething

                              previewMCL.loadClip(imageFile,tl.targetMC);

                    }

                    • 7. Re: Math.sin(Math.PI)
                      kglad Adobe Community Professional & MVP

                      mask_ra is undefined in onLoadProgress.

                       

                      use:

                       

                      var mask_ra:Number;

                      previewImage.onLoadProgress = function(targetMC, lBytes, tBytes) {

                      //FirstHalf

                      //This works only without "SecondHalf"

                                percentDone=Math.round((lBytes / tBytes) * 100);

                                _root.loaderPsnt_tx.percentDisplay.text = percentDone + "%";

                       

                      //SecondHalf

                      //This is not working

                            _root.mc_mask.clear();

                            _root.mc_mask.beginFill(0xff0000, 100);

                            _root.mc_mask.lineStyle(1, 0xff0000, 80);

                        c = Math.round(percentDone * (-1.84));

                            for (i=0; i>=c; i--) {

                               x = Math.sin(Math.PI/90*i)*mask_ra;

                               y = Math.cos(Math.PI/90*i)*mask_ra;

                               _root.mc_mask.lineTo(x, y);

                             }

                            _root.mc_mask.endFill();

                       

                      };

                       

                      previewImage.onLoadStart = function(targetMC) {

                                _root.loaderPsnt_tx._visible = _root.circle._visible = _root.mc_mask._visible = true;

                                _root.circle.setMask(_root.mc_mask);

                               mask_ra = (_root.circle._width / 1) * -1;

                                var c:Number = 0;

                                var percentDone:Number = 0;

                      }; 

                       

                      previewImage.onLoadComplete = function(targetMC) {

                                _root.loaderPsnt_tx._visible = _root.circle._visible = _root.mc_mask._visible = false;

                      };

                      • 8. Re: Math.sin(Math.PI)
                        Ron Colmen Level 2

                        Thanks Kglad!!

                        • 9. Re: Math.sin(Math.PI)
                          kglad Adobe Community Professional & MVP

                          you're welcome.