调整as3中的重叠按钮

调整as3中的重叠按钮

问题描述:

感谢所有提前的帮助。 我做了100%的闪存背景拉伸......这是main.as代码:调整as3中的重叠按钮

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_amministra,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; 
    } 
+0

所以你在寻找一种方式,让您的按钮较小,只有当他们开始了圈? – BadFeelingAboutThis 2012-07-25 18:12:02

+0

当我有一个屏幕分辨率为1920×1080相比低....如果我不调整按钮链接......啊,他们开始重叠 我需要一些精确的信息: 1 - ..然后使用这在你的init()方法中: 我必须在这里添加你的脚本吗? private function init():void { stage.frameRate = 31; bg_mc.x = 0; //等。 如果(stage.stageWidth umbbberto 2012-07-25 23:34:14

+0

我更新了代码以包含您的整个init()函数,希望它更清晰。 – BadFeelingAboutThis 2012-07-26 17:46:26

我以这种方式解决:

包{

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(); 
    } 
    } 
} 

感谢