我有一個HGroup,我想將元素拖放到上面。爲了塑造HGroup,它實際上是一個擁有Rect和HGroup的組織。Flex HGroup中的拖動區域小於組本身
此代碼中的阻力區域只是作爲目前該組中的元素一樣大(這就是爲什麼我擺在那裏一個按鈕對其進行測試)。正如你所看到的,我已經手動設置了組和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);
}
}
}
我剛剛開始使用AS,並且對MXML文件和組件如何相互關聯感到困惑,但您非常正確,我正要將此重構爲MXML!感謝你的回答,把這個組合放在組裏看起來應該很棒。 – cflewis