2013-10-28 3 views
-1

Heyyyy, 마우스 오버 이벤트에서 스테이지를 조정하는 동안 간단한 방법 (가능한 한 간단하게 AS3의 초보자입니다)을 찾으려고합니다. 자세한 내용은 원본 크기가 670x40이고 대상 크기가 670x230입니다. 또한 영화 클립을 보내 주시면 답변 해 드리겠습니다.AS3 플래시의 스테이지 크기 조정

+0

를 초기화합니다? ... 무대와 당신이 플래시 창 크기를 평균 크기를 조정 ? – Pier

답변

1

코드에서 스테이지 크기를 동적으로 변경할 수는 없지만 JS로 변경할 수는 있습니다. here을 참조하십시오.

+0

예, 아니요. :) – tatactic

0

죄송합니다, 이것은 이전 게시물이지만, 나는이 사람을 도울 수있는 희망, 나는 때 Stage.width, stage.height 및 stage.stageWidth, stage.stageHeight 사이의 문제와 혼란을 많이 ...보고

당신이 알아야 할 것은 stage.align = StageAlign.TOP_LEFT 또는 StageAlign.TOP과 stage.scaleMode = StageScaleMode.NO_SCALE;을 사용해야한다는 것입니다.

모든 작품을해야 잘 다음 ...

이것은 "COM"패키지에 Main.as 클래스 파일 만들기 ... Event.Resize이 트리거 될 때 크기 을 일부 콘텐츠를 다시하는 방법입니다 (아래 코드는 간단한 코드를 붙이면 작동하는 법을 알아내는 데 사용됩니다) 플래시의 기본 클래스를 "com.Main"으로 설정하십시오.

왜 MouseEvent가 트리거 될 때 수행하려고합니까? 말도 안되는 것처럼 보입니다 ...

이 경우 Event.RESIZE가 더 효율적입니다. Event.ADDED 플래시 플레이어에 당신을 당신이 ... 더 지정해야 크기를 조정하려는 항목 ...

package com 
{ 
    import flash.display.Graphics; 
    import flash.display.MovieClip; 
    import flash.display.Stage; 
    import flash.display.StageAlign; 
    import flash.display.StageQuality; 
    import flash.display.StageScaleMode; 
    import flash.events.Event; 
    import flash.text.TextField; 

    public class Main extends MovieClip 
    { 
     public static const ORANGE:int = 0xff9900; 
     private var bg:MovieClip; 
     private var bg_mask:MovieClip; 
     private var marginx:int = 10; 
     private var marginy:int = 10; 
     private var display:MovieClip; 
     private var displayTextField:TextField; 
     private var ellipseWidth:int = 90; 
     private var ellipseHeight:int = 90; 
     public function Main() 
     { 
      super();    
      bg = new MovieClip(); 
      bg_mask = new MovieClip(); 
      display = new MovieClip(); 
      displayTextField = new TextField(); 
      this.addChild(bg); 
      this.addChild(bg_mask); 
      this.addChild(display); 
      this.display.addChild(displayTextField); 
      displayTextField.text = ""; 
      displayTextField.x = ellipseWidth/Math.PI; 
      displayTextField.y = ellipseHeight/Math.PI; 
      stage.align = StageAlign.TOP_LEFT; // or StageAlign.TOP 
      stage.scaleMode = StageScaleMode.NO_SCALE; 
      drawBackground(); 
      display.mask = bg_mask; 
      addListeners(); 
     } 
     private function drawBackground(thickness:int=1,lineColor:int=0x000000,lineAlpha:Number=0.5,fillColor:int=ORANGE,fillAlpha:Number=0.5):void{ 
      var g:Graphics = bg.graphics; 
      g.clear(); 
      g.lineStyle(thickness,lineColor,lineAlpha); 
      g.beginFill(fillColor,fillAlpha); 
      g.drawRoundRect(marginx,marginy,this.stage.stageWidth-marginx*2,this.stage.stageHeight-marginy*2,ellipseWidth,ellipseHeight); 
      g.endFill(); 
     } 
     private function drawMask():void{ 
      var g:Graphics = bg_mask.graphics; 
      g.clear(); 
      g.lineStyle(1,0x000000,0.3); 
      g.beginFill(0xcccccc,0.1); 
      g.drawRoundRect(marginx,marginy,this.stage.stageWidth-marginx*2,this.stage.stageHeight-marginy*2,90,90); 
     g.endFill(); 
     } 
     private function addListeners():void{ 
      stage.addEventListener(Event.ADDED,updateLabel); 
      stage.addEventListener(Event.RESIZE,updateLabel); 
     } 
     private function updateLabel(e:Event):void{ 
      updateDisplay(); 
      drawBackground(); 
      drawMask(); 
     } 
     private function updateDisplay():void{ 
      var tf:TextField = displayTextField; 
      tf.text = ("{" + this.stage.stageWidth + ";" + this.stage.stageHeight + "}"); 
     } 
    } 
} 
관련 문제