Я пытаюсь отобразить миникарту с перетаскиваемым окном просмотра под диаграммой. Я по существу есть это контролировать окно просмотра диаграммы:Перемещение нескольких разделителей за раз в HDividedBox
<mx:annotationElements>
<mx:HDividedBox id="dividedBox" horizontalScrollPolicy="off" width="100%" height="100%" liveDragging="true" borderSides="bottom top">
<mx:Canvas id="leftBox" backgroundColor="#FFFFFF" backgroundAlpha="0.5" width="50%" height="100%" borderColor="#333333" borderThickness="1" borderStyle="solid" borderSides="top right bottom" />
<mx:Canvas id="centerBox" backgroundColor="#FFFFFF" backgroundAlpha="0" width="50%" height="100%" buttonMode="true" minWidth="100" mouseDown="rangeWindowMouseHandler(event);" mouseUp="rangeWindowMouseHandler(event);" mouseMove="rangeWindowMouseHandler(event);" />
<mx:Canvas id="rightBox" backgroundColor="#FFFFFF" backgroundAlpha="0.5" width="0%" height="100%" borderColor="#333333" borderThickness="1" borderStyle="solid" borderSides="top left bottom" />
</mx:HDividedBox>
</mx:annotationElements>
С следующий сценарий:
private function rangeWindowMouseHandler(event:MouseEvent):void {
if(event.target === centerBox) {
var coords:Object = rangeDragCoordinates;
switch(event.type.toLowerCase()) {
case 'mousedown':
rangeDrag = true;
break;
case 'mouseup':
rangeDrag = false;
break;
case 'mousemove':
if(rangeDrag) {
var xDiff:Number = -(coords.x - event.stageX) * 4.0;
for(var i:Number = 0; i < dividedBox.numDividers; i++) {
dividedBox.moveDivider(i, xDiff);
}
}
break;
}
coords.x = event.stageX;
coords.y = event.stageY;
}
}
Проблема, только один делитель на самом деле движется в то время. Я обнаружил, что если я установил тайм-аут около 50 мс, прежде чем перемещать следующий разделитель, чтобы оба разделителя двигались. Однако это кажется довольно неудобным способом приблизиться к этому и подвержен ошибкам.
Кто-нибудь знает, можно ли одновременно перемещать два разделителя в HDividedBox или я должен использовать другой подход?
Когда вы говорите, что «только один делитель действительно движется за раз», вы имеете в виду, что другой «догоняет» после того, как вы отпустите первый разделитель? – Robusto
Нет, только один ход. – illvm