调整as3中重叠按钮的大小



提前感谢大家的帮助。我做了一个100%的闪光背景拉伸。。。这是主要的。as的代码:

package {
import flash.display.MovieClip;
import flash.text.TextField;
import flash.events.Event;
import flash.net.navigateToURL;
    import flash.net.URLRequest;
import flash.events.MouseEvent;

public class Main extends MovieClip
{
    public function Main()
    {
        init();
        checkResize();
    clip_mc.addEventListener(MouseEvent.CLICK, siteNav1);
    clip_amministra.addEventListener(MouseEvent.CLICK, siteNav2);

    clip_chisiamo.addEventListener(MouseEvent.CLICK, siteNav4);
    }
    function siteNav1(e:MouseEvent):void {
    navigateToURL(new URLRequest("http://www.amicolibro.org/index.php"), "_self");
    }
    function siteNav2(e:MouseEvent):void {
    navigateToURL(new URLRequest("http://www.amicolibro.org/log-in-amministratore.php"), "_self");
    }

    function siteNav4(e:MouseEvent):void {
    navigateToURL(new URLRequest("http://www.amicolibro.org/chi-siamo.php"), "_self");
    }                           
    private function init():void
    {
        stage.frameRate=31;
        bg_mc.x=0;
        bg_mc.y=0;
        bg_mc.width=stage.stageWidth;
        bg_mc.height=stage.stageHeight;
        clip_mc.x=stage.stageWidth/6.3;
        clip_mc.y=stage.stageHeight/2.2;
        clip_amministra.x=stage.stageWidth/1.3;
        clip_amministra.y=stage.stageHeight/2;

              clip_chisiamo.x=stage.stageWidth/10;
        clip_chisiamo.y=stage.stageHeight/1.19; 
    }
    private function checkResize():void
    {
        stage.addEventListener(Event.RESIZE, resizeStage);
    }
    private function resizeStage(event:Event):void 
    {
        init();
    }
}
}

是否可以按比例调整clip_mc、clip_aministra、clip_chisiamo按钮的大小?

感谢

听起来,如果对象过于靠近或重叠,您想要一种调整对象大小的方法吗?

这是一种可能的方法。有更好的方法需要更多的工作,但这是最简单的。

做一个简单的相对大小。这不是很精确,但会很快,可能适合您的需求。假设400x500(作为一个例子,调整这些值,直到你得到合适的数量)是在它们开始重叠之前,阶段在原生按钮大小下可以达到的最小值,然后将其用作你的init()方法(以及两个新的全局:

    private function init():void
    {
        var minWidth:Number = 400; //change this number to be whatever works best
        var minHeight:Number = 500; //change this number to be whatever works best
        stage.frameRate=31;
        bg_mc.x=0;
        bg_mc.y=0;
        bg_mc.width=stage.stageWidth;
        bg_mc.height=stage.stageHeight;
        clip_mc.x=stage.stageWidth/6.3;
        clip_mc.y=stage.stageHeight/2.2;
        clip_amministra.x=stage.stageWidth/1.3;
        clip_amministra.y=stage.stageHeight/2;
        clip_chisiamo.x=stage.stageWidth/10;
        clip_chisiamo.y = stage.stageHeight / 1.19; 
    //this is the new stuff
        var scaleAmount:Number = 1;
        if (stage.stageWidth < minWidth || stage.stageHeight < minHeight) {
            if (minWidth / stage.stageWidth < minHeight / stage.stageHeight) {
                scaleAmount = (minWidth / stage.stageWidth);
            }else{
                scaleAmount = minHeight / stage.stageHeight;
            }
        }
        //do this for all your buttons scaleX and scaleY properties, i'm assuming clip_mc, clip_amministra and clip_chisiamo are some of your button instances.
        clip_mc.scaleX = scaleAmount;
        clip_mc.scaleY = scaleAmount;
        clip_amministra.scaleX = scaleAmount;
        clip_amministra.scaleY = scaleAmount;
        clip_chisiamo.scaleX = scaleAmount;
        clip_chisiamo.scaleY = scaleAmount;
    }

i以这种方式求解:

包{

import flash.display.MovieClip;
import flash.text.TextField;
import flash.events.Event;
import flash.net.navigateToURL;
    import flash.net.URLRequest;
import flash.events.MouseEvent;

public class Main extends MovieClip
{
    public function Main()
    {
        init();
        resizeHandler();
        checkResize();
    clip_mc.addEventListener(MouseEvent.CLICK, siteNav1); 
    clip_amministra.addEventListener(MouseEvent.CLICK, siteNav2);
    clip_chisiamo.addEventListener(MouseEvent.CLICK, siteNav4);

    }
    function siteNav1(e:MouseEvent):void {                                       
    navigateToURL(new URLRequest("http://www.amicolibro.org/index.php"), "_self");
    }
    function siteNav2(e:MouseEvent):void {
    navigateToURL(new URLRequest("http://www.amicolibro.org/log-in-amministratore.php"), "_self");
           }
    function siteNav4(e:MouseEvent):void {
    navigateToURL(new URLRequest("http://www.amicolibro.org/chi-siamo.php"), "_self");
    }

    private function init():void
    {
        stage.frameRate=31;
        bg_mc.x=0;                           
        bg_mc.y=0;
        bg_mc.width=stage.stageWidth;
        bg_mc.height=stage.stageHeight;
        clip_mc.x=stage.stageWidth/6.3;  
        clip_mc.y=stage.stageHeight/2.2;  
        clip_amministra.x=stage.stageWidth/2.7; 
        clip_amministra.y=stage.stageHeight/4.9; 

            clip_chisiamo.x=stage.stageWidth/10;
        clip_chisiamo.y=stage.stageHeight/1.19;
        }       

    private function resizeHandler(event:Event=null):void  //resize buttons
          {
           var sw:Number = stage.stageWidth;
           var sh:Number = stage.stageHeight;

          clip_mc.width = sw /8;         // clip_mc is 1/8 as wide as the stage..can change this number to be whatever works best
      clip_mc.height = sh /8;    // clip_mc is 1/8 as high as the stage..can change this number to be whatever works best
          clip_amministra.width = sw /10;     // clip_amministra is 1/10 as wide as the stage..can change this number to be whatever works best
      clip_amministra.height = sw /10;    // clip_amministra is 1/10 as high as the stage..can change this number to be whatever works best

      clip_chisiamo.width = sw /6;        //clip_chisiamo is 1/6 as wide as the stage..can change this number to be whatever works best
      clip_chisiamo.height = sh /6;     // clip_chisiamo is 1/6 as high as the stage..can change this number to be whatever works best

      clip_mc.scaleX <= clip_mc.scaleY ? (clip_mc.scaleX = clip_mc.scaleY) : (clip_mc.scaleY = clip_mc.scaleX); // keeps clip_mc proportional 
      clip_amministra.scaleX <= clip_amministra.scaleY ? (clip_amministra.scaleX = clip_amministra.scaleY) : (clip_amministra.scaleY = clip_amministra.scaleX); // keeps clip_amministra proportional
      clip_chisiamo.scaleX <= clip_chisiamo.scaleY ? (clip_chisiamo.scaleX = clip_chisiamo.scaleY) : (clip_chisiamo.scaleY = clip_chisiamo.scaleX); // keeps clip_chisiamo proportional

                 }
      private function checkResize():void
    {
        stage.addEventListener(Event.RESIZE, resizeStage);
    }
      private function resizeStage(event:Event):void 
    {
        init();
    }
    }
}

感谢

最新更新