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
我已将所有代码上传到 Pastebin。看一看 ;)

4

3 回答 3

1

问题是你的处理函数没有关于你的 Slider 在哪里的任何信息。s您拥有的变量也不是真正的全局变量,它在您的类或影片剪辑中是本地的。this当处理程序由影片剪辑外部的代码执行时,除非您使用类中的方法,否则没有上下文。

我能想到的最好的方法是使用一个类。在类上创建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
            }
        }
    }
}
于 2009-06-06T15:47:13.503 回答
1

您的thiscompleteHandler 不是文档。试试 someMC.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;
于 2009-10-07T00:22:30.083 回答
0

好巧我又看到你的问题了。(记住账号?)

好吧,而不是从另一个域缩放图像,您可以缩放加载器,因此不会有任何跨域安全问题

这里有一个工作示例:http: //matrixoft.infunity.com/agent/calvin/stackoverflow/getScale.swf

源代码在这里: http: //matrixoft.infunity.com/agent/calvin/stackoverflow/getScale.rar

[ps 查看 buttonAction 层内的注释代码,注释代码失败,因为它试图操纵来自另一个域的图像的比例。注释代码后的代码操纵加载器的比例,而不是图像]

于 2009-06-06T17:03:22.357 回答