Удалить Flex Chis AxisRenderer в макете? - PullRequest
2 голосов
/ 19 марта 2011

Я пытаюсь скрыть средства визуализации по вертикальной и горизонтальной осям в flex, чтобы я мог сделать снимок диаграммы без них.

Я установил оба рендера на visible = false и includeInLayout = false. Они не появляются, но они все еще занимают место. Я попытался установить ширину / высоту в 0, и это тоже не помогает.

        <mx:horizontalAxisRenderers>
        <mx:AxisRenderer
            id="horizontalAxisRenderer"
            axis="{dtAxis}"
            axisStroke="{axis}" 
            placement="bottom"
            minorTickPlacement="outside" 
            minorTickLength="10" 
            tickLength="12" 
            tickPlacement="outside"
            color="0x707275"
            styleName="axisStyle"
            visible="false"
            includeInLayout="false"
            >
            <mx:tickStroke>{ticks}</mx:tickStroke>
            <mx:minorTickStroke>{mticks}</mx:minorTickStroke>
        </mx:AxisRenderer>
    </mx:horizontalAxisRenderers>

    <mx:verticalAxisRenderers>
        <mx:AxisRenderer
            id="verticalAxisRenderer"
            axis="{laMain}"
            axisStroke="{axis}" 
            placement="bottom"
            minorTickPlacement="outside" 
            minorTickLength="10" 
            tickLength="12" 
            tickPlacement="outside"
            fontSize="15"
            color="0x707275"
            labelGap="0"
            styleName="axisStyle"
            visible="false"
            includeInLayout="false"
            >
            <mx:tickStroke>{ticks}</mx:tickStroke>
            <mx:minorTickStroke>{mticks}</mx:minorTickStroke>
        </mx:AxisRenderer>
    </mx:verticalAxisRenderers>

Ответы [ 4 ]

4 голосов
/ 31 марта 2011

Подобный вопрос был задан здесь , и, опираясь на этот ответ , я смог добиться успеха. Попробуйте что-то вроде следующего, отрегулировав тип оси при необходимости из LinearAxis в соответствии с тем, что вы используете:

  <mx:horizontalAxis>
    <mx:LinearAxis id="myXAxis" />
  </mx:horizontalAxis>
  <mx:horizontalAxisRenderers>
    <mx:AxisRenderer axis="{myXAxis}"
                     minorTickPlacement="none"
                     tickPlacement="none"
                     labelGap="0"
                     showLabels="false" showLine="false"
                     visible="false" includeInLayout="false" />
  </mx:horizontalAxisRenderers>

Мне все еще нужно было сохранить связь между средством визуализации и осью. Без этого приложение, похоже, вообще не хотело бы загружаться.

1 голос
/ 06 марта 2013

Чтобы добавить средство визуализации оси динамически, вы должны сделать это.

var tp:Array = barChart.verticalAxisRenderers;
axisRenderer = new AxisRenderer();
axisRenderer.axis = v2Axis;
axisRenderer.placement = "right";
tp.push(axisRenderer);
barChart.verticalAxisRenderers = tp;    

здесь v2Axis - это вертикальная ось, для которой мы добавляем это средство визуализации.Диаграмма уже имеет вертикальную ось с левой стороны.Мы только что добавили еще одну вертикальную ось к правой стороне.

Если вы хотите скрыть средство визуализации осей, сделайте это

var tp:Array = barChart.verticalAxisRenderers;
axisRenderer.includeInLayout =false;
axisRenderer.visible = false;
tp = null;
barChart.verticalAxisRenderers = tp;

Здесь barChart - это идентификатор диаграммы.Это будет работать.

1 голос
/ 19 марта 2011

Если вы хотите удалить / скрыть ось, почему у вас есть вся эта связанная информация?

<mx:AxisRenderer visible="false" includeInLayout="false" /> 

Должен это сделать.

0 голосов
/ 21 марта 2011

Попробуйте установить левое, правое, верхнее и нижнее желоба на небольшое значение. Они определяют размеры зазора в AxisRenderes. Диаграмма вычисляет их автоматически по умолчанию. Может случиться так, что он не учитывает свойства visible и includeInLayout при расчете желобов. См. computedGutters и dataRegion для получения дополнительной информации о работе этих.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...