我有一个 HGroup,我想将元素拖到上面。为了设置 HGroup 的样式,它实际上是一个包含 Rect 和 HGroup 的 Group。
此代码中的拖动区域仅与当前组中的元素一样大(这就是我在其中放置一个按钮来测试它的原因)。如您所见,我手动设置了 Group 和 HGroup 的宽度。一切都报告自己是 300 宽,应该是这样,但拖动区域仍然只有 HGroup 中元素的数量。这让我认为 HGroup 实际上并不是它所报告的(它报告 300.width
在设置后访问该属性)。Rect 的宽度正好是 300,所以我可以看到放置区应该是什么。
我觉得我必须做一些非常明显的错误,但我看不到它。任何想法将不胜感激!
编辑:我想知道是否存在某种掩蔽问题。在矩形上添加一个拖动输入事件(我知道这是正确的大小,正如我所看到的)也不会导致输入事件触发。我怎么会发现这个?
package components
{
import mx.core.IUIComponent;
import mx.events.DragEvent;
import mx.graphics.SolidColor;
import mx.managers.DragManager;
import spark.components.Group;
import spark.components.HGroup;
import spark.components.VGroup;
import spark.primitives.Rect;
public class TestVerticalConstraintExpression extends Group
{
private var expressions:VGroup;
private var topExpression:Group;
private var locked:Boolean = false;
public function TestVerticalConstraintExpression()
{
super();
this.width = 300;
expressions = new VGroup();
expressions.width = 300;
this.addElement(getBackground());
topExpression = new HGroup();
expressions.addElement(topExpression);
this.addElement(getBackground());
this.addElement(expressions);
topExpression.width = 300;
topExpression.height = 50;
topExpression.addElement(new ConstraintButton());
// Setup listeners for when things are dropped onto the expression group
topExpression.addEventListener(DragEvent.DRAG_ENTER,
dragEnterHandler);
}
protected function getBackground():Rect
{
var bg:Rect = new Rect();
bg.fill = new SolidColor(Math.round(Math.random()*0xFFFFFF));
bg.left = 0;
bg.right = 0;
bg.top = 0;
bg.bottom = 0;
bg.percentWidth = 100;
bg.percentHeight = 100;
return bg;
}
protected function dragEnterHandler(event:DragEvent):void {
DragManager.acceptDragDrop(event.currentTarget as IUIComponent);
}
}
}