AS3 Простые вопросы о событиях - PullRequest
0 голосов
/ 08 августа 2010

Я пытаюсь получить процентную координату х MC.Например, мой MC имеет ширину 500 пикселей и высоту 20 пикселей.Когда я щелкнул часть своего MC, я хочу получить процент от координаты x моего MC ... (20% будет 100px моего MC ...) .. Кто-нибудь знает, как это сделать ??Спасибо ..

мой код

progressBa.addEventListener(MouseEvent.CLICK, barClick);

  private function barClick(event:MouseEvent):void{
    perct=this.mouseX/progressBa.Width;  //not sure how to do it....
   }

1 Ответ

1 голос
/ 08 августа 2010

Я не очень знаком с Actionscript, но я использовал функцию trace(event), чтобы увидеть, что находится внутри события:

[MouseEvent type="click" bubbles=true cancelable=false eventPhase=2 localX=202 localY=5 stageX=296 stageY=88 relatedObject=null ctrlKey=false altKey=false shiftKey=false buttonDown=false delta=0]

Как видите, у объекта MouseEvent есть свойство с именем localX, которое вам нужно. Итак, фактический класс для мувиклипа:

package 
{
  import flash.display.MovieClip;
  import flash.events.*;

  public class progressBa extends MovieClip
  {
    public function progressBa()
    {
      // Add a mouse event to this, the movieclip called progressBa
      this.addEventListener(MouseEvent.CLICK, clickBar);
    }

    private function clickBar(e:MouseEvent):void
    {
      // Get click location's x-coordinate in percentages
      var percent = 100 * e.localX / this.width;
      trace(percent);
    }
  }
}

К моему удивлению, я смог нажать на 100,018 ...%, возможно из-за сглаживания.

...