2009-06-06 216 views
1

我加載一個圖像並將其添加到MC someMC。如果「某事」是真的,someVariable獲得someMC scaleX數字。假設它是0.82。全局變量問題

我需要的是讓我的Slider對象中的s.value數字。因爲我希望Slider值成爲我的圖像縮放比例。

這當然不起作用,因爲可變範圍限制。

我已經嘗試在代碼的頂部設置變量,如下所示: var someVariable:Number; 但這也沒有奏效。

下面的代碼:

function completeHandler(event:Event):void{ 
    if (something) { 
      var someVariable:Number = this.someMC.scaleX; 
    } 
} 


var s:Slider = new Slider(); 
s.maximum = 500; 
s.minimum = 10; 
s.value = someVariable; 

有什麼想法?


更新
我正在尋找一個解決方案,而不必使用包和類,因爲我不是AS3細水長流呢。

更新2
I've uploaded all the code to Pastebin. Take a look ;)

+0

如果我在一個movieclip中,並且我已經導入了global.as,我是否還需要將它導入到影片剪輯中? – 2010-01-25 14:59:47

回答

1

您的completeHandler中的this不是該文檔。只需嘗試一些MC.scaleX,並假設您在主時間線或任何地方聲明瞭它,它應該可以訪問它。 scaleX屬性的範圍也只是從0到1,所以如果你的Slider是從10:500 - 這不起作用。我把* 100放在那裏給你,但是不管做什麼數學都可以把你的規模固定到你想要的。

此外,您需要明確地設置處理程序中的Slider的值,而不是僅僅更改var。變量不會像AS3那樣傳遞。

function completeHandler(event:Event):void{ 
     if (something) { 
        var someVariable:Number = someMC.scaleX; 
        s.value = someVariable * 100; 
     } 
} 


var s:Slider = new Slider(); 
s.maximum = 500; 
s.minimum = 10; 
1

的問題是你的處理函數沒有了解您的滑塊是任何信息。您所在的s變量並非真正全球化,它在您的課堂或動畫片段中是本地的。當處理程序由動畫片段外的代碼執行時,除非使用類中的方法,否則不存在this上下文。

我能想到這樣做的最好方法就是使用一個Class。創建s作爲類的成員變量,然後您的處理程序將能夠使用this引用它。像下面的代碼應該這樣做。一定要將它鏈接到一個庫動畫片段也。

package { 
    import flash.display.MovieClip; 

    class MyMovieClip extends MovieClip { 
     public var s:Slider; 

     public function MyMovieClip { 
      var s:Slider = new Slider(); 
      s.maximum = 500; 
      s.minimum = 10; 

     } 

     function completeHandler(event:Event):void{ 
      if (something) { 
       var someVariable:Number = this.someMC.scaleX; 
       this.s.value = someVariable 
      } 
     } 
    } 
} 
+0

kekoav:查看更新;) – 2009-06-06 16:35:27

0

好意外地我再次看到你的問題。 (記得我嗎?)

好,而不是從另一個域縮放圖像,可以縮放加載,所以不會有任何跨域安全問題

工作示例這裏: http://matrixoft.infunity.com/agent/calvin/stackoverflow/getScale.swf

源代碼在這裏: http://matrixoft.infunity.com/agent/calvin/stackoverflow/getScale.rar

[ps請參閱buttonAction圖層中的註釋代碼,註釋代碼失敗,因爲它試圖從另一個域操縱圖像的縮放比例。代碼在註釋代碼後操作加載程序的規模,而不是圖像]

+0

我無法讓它工作。你能用我的代碼顯示我嗎? http://pastebin.com/m7c37b3cf – 2009-06-07 00:24:03