2012-07-25 78 views
0

感謝所有提前的幫助。 我做了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可能的一個比例調整?

感謝

回答

0

聽起來像是你想要的方式來調整你的對象,如果他們靠得太近或重疊?

以下是一種可能的解決方法。有更好的方式是更多的工作,但這是最簡單的。

做一個簡單的相對大小。這不會很精確,但會很快,可能會滿足您的需求。比方說,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 <400 || stage.stageHeight <500){// etc.etc .. } 2,我不知道如何做到這一點: ... //設置所有按鈕的scaleX/Y爲1. clip_mc.scaleX = 1; clip_mc.scaleY = 1; 是不是? merci beaucoup – umbbberto 2012-07-25 23:34:14

+0

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

0

我以這種方式解決:

包{

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

感謝