【问题标题】:How do I get an object’s width and height in Flash?如何在 Flash 中获取对象的宽度和高度?
【发布时间】:2011-11-27 11:04:23
【问题描述】:

我认为这将是直截了当的,但我在重新定位我的内容时遇到了麻烦。 我有一个名为rollOne 的按钮实例,当我滚动按钮时,我想加载一个swf 对象,但不是在按钮顶部,所以我想知道按钮的宽度是多少,这样我就可以重新定位动态加载的内容。我以为rollOne.width 会返回宽度,但它只返回0,高度也是如此。

任何建议将不胜感激。

rollOne.addEventListener(MouseEvent.MOUSE_OVER, fetchQty);
function fetchQty(event:MouseEvent):void
{
    myContainer.x = (rollOne.x + rollOne.width);
    myContainer.y = (rollOne.y + rollOne.height);
    var img1Request:URLRequest = new URLRequest("8032697883620.swf");
    var img1Loader:Loader = new Loader();
    img1Loader.load(img1Request);
    myContainer.addChild(img1Loader);
    trace(rollOne.width);
}

【问题讨论】:

  • 这里的代码没有错,你需要展示rollOne是如何创建的
  • 应该可以。如果你使用 event.target.width 而不是 rollOne.width 会发生什么?
  • rollOne 只是一个拖到舞台上的按钮符号,并被赋予一个实例名称 rollOne。
  • event.target.width 也发回 0
  • 我在 Flash CS 5.5 中复制、粘贴和缩减了您的代码,它完美运行:rollOne.addEventListener(MouseEvent.MOUSE_OVER, fetchQty); function fetchQty(event:MouseEvent):void { trace(rollOne.width); }

标签: flash actionscript-3 flash-cs5


【解决方案1】:

我假设 rollOne 是 SimpleButton 或 MovieClip 的一个实例 如果是 MovieClip,请检查第一帧是否为空。 如果是 SimpleButton,则检查所有状态是否为空。

你也可以创建一个自己的类,忽略原来的宽度和高度:

public class MyButton extends SimpleButton
{
    private var _width:Number;
    private var _height:Number;
    public function MyButton(widthInput:Number, heightInput:Number)
    {
        this._width = widthInput;
        this._height = heightInput;
    }

    override public function get width():Number
    {
        return _width;
    }

    override public function get height():Number
    {
        return _height;
    }
}

【讨论】:

  • 谢谢,按钮的over状态是空的,因为矩形的填充设置为none。确保你的不可见翻转的填充没有设置为无,而是将它的 alpha 设置为 0
【解决方案2】:

在 Flash 8(或 ActionScript object._x 和 object._y! ;-)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-10
    • 2015-08-15
    • 1970-01-01
    • 2011-09-16
    • 2011-07-12
    • 2014-05-01
    • 2011-08-13
    相关资源
    最近更新 更多