Для выполнения примера добавьте ссылки на следующие файлы:
PP.css;
PP.js;
PP.GraphicsBase.js;
PP.Charts.js;
PP.Gauge.js;
PP.GaugeMaster.js;
resources.ru.js.
В теге BODY добавьте следующий код:
<div id="example" style="display: inline; float: left;"></div> <div id="speedometer" style="display: inline; float: left; "></div>
В теге SCRIPT добавьте код для создания спидометра с мастером:
<script type="text/javascript">
PP.resourceManager.setResourceList(["GaugeMaster", "PP"]);
PP.resourceManager.setRootResourcesFolder("resources/");
PP.setCurrentCulture(PP.Cultures.ru);
var speedometer, master;
var speedsettings = {
ParentNode: "speedometer",
Width: 250,
Height: 150,
BaseWidth: 220,
BaseHeight: 135,
CenterPosition: "110, 107",
Center: {
PPType: PP.Ui.CircleMarker,
Size: 4,
BorderEnabled: false,
Background: {
PPType: PP.LinearGradientBrush,
StartPoint: "0, 0",
EndPoint: "1, 1",
GradientStops: {
GradientStop: [{
Color: "#ff4333",
Offset: 0.1
}, {
Color: "#ff190b",
Offset: 0.5
}, {
Color: "#9f0505",
Offset: 0.9
}]
}
}
},
CenterLabel: {
Offset: 0,
Font: {
Color: "#848181",
Size: 11
},
Border: {
PPType: PP.SolidColorBrush,
Color: "#b4b4b4"
},
Background: {
PPType: PP.SolidColorBrush,
Color: "#ffffff"
},
BorderWidth: 2,
Text: "1000",
TextAlign: "Center",
Width: 30,
IsVisible: true
},
OuterRadius: "100,100",
Scales: [{
Size: 0,
Length: 180,
StartAngle: 90,
MinValue: 0,
MaxValue: 180,
CenterPosition: "110,115",
OuterRadius: "1,1",
Sectors: [{
StartValue: 0,
EndValue: 180,
Background: {
PPType: PP.LinearGradientBrush,
StartPoint: "0, 0.5",
EndPoint: "1, 0.5",
GradientStops: {
GradientStop: // Подложка
[{
Color: "#d5d3d3",
Offset: 0.01
}, {
Color: "#676767",
Offset: 0.08
}, {
Color: "#d5d3d3",
Offset: 0.25
}, {
Color: "#676767",
Offset: 0.5
}, {
Color: "#d5d3d3",
Offset: 0.75
}, {
Color: "#676767",
Offset: 0.92
}, {
Color: "#d2d2d2",
Offset: 0.99
}]
}
},
StartSize: 1,
EndSize: 1,
Offset: 0
}, {
StartValue: 0,
EndValue: 180,
Background: {
PPType: PP.LinearGradientBrush,
StartPoint: "0, 0.5",
EndPoint: "1, 0.5",
GradientStops: {
GradientStop: //для нижней границы
[{
Color: "#bebebe",
Offset: 0.01
}, {
Color: "#dadada",
Offset: 0.25
}, {
Color: "#767676",
Offset: 0.5
}, {
Color: "#dfdfdf",
Offset: 0.8
}, {
Color: "#aeaeae",
Offset: 0.99
}]
}
},
StartSize: 0.95,
EndSize: 0.95,
Offset: 5
}, {
StartValue: 0,
EndValue: 120,
Background: {
PPType: PP.LinearGradientBrush,
StartPoint: "0, 0.5",
EndPoint: "1, 0.5",
GradientStops: {
GradientStop: //тонкая белая линия на внешней границе
[{
Color: "#FFFFFF",
Offset: 0.01
}, {
Color: "#c7c7c7",
Offset: 0.75
}, {
Color: "#d2d0d0",
Offset: 0.9
}]
}
},
StartSize: 0.01,
EndSize: 0.01,
Offset: 1
}]
}, {
Size: 0,
Length: 180,
MinValue: 0,
MaxValue: 180,
StartAngle: 90,
CenterPosition: "110,112",
OuterRadius: "0.95,0.93",
IsAbsoluteSectorOffset: false,
Sectors: [{
StartValue: 0,
EndValue: 180,
Background: {
PPType: PP.SolidColorBrush,
Color: "#efefef"
},
StartSize: 1,
EndSize: 1,
Offset: 0
}, {
StartValue: 0,
EndValue: 180,
Background: {
PPType: PP.SolidColorBrush,
Color: "#a2a1a1"
},
StartSize: 0.01,
EndSize: 0.01,
Offset: 0.37
}, {
StartValue: 0,
EndValue: 180,
Background: {
PPType: PP.SolidColorBrush,
Color: "#666666"
}, //темно серый тонкий сектор
StartSize: 0.01,
EndSize: 0.01,
Offset: 0
}, {
StartValue: 0,
EndValue: 180,
Background: {
PPType: PP.SolidColorBrush,
Color: "#ffffff"
}, //белый тонкий сектор
StartSize: 0.01,
EndSize: 0.01,
Offset: 0.38
}]
}, {
Size: 0,
Length: 180,
MinValue: 0,
MaxValue: 180,
StartAngle: 90,
CenterPosition: "110,112",
OuterRadius: "0.95,0.92",
IsAbsoluteSectorOffset: false,
Sectors: [{
StartValue: 0.5,
EndValue: 45,
Background: // синий
{
PPType: PP.LinearGradientBrush,
StartPoint: "0, 0.5",
EndPoint: "1, 0.5",
GradientStops: {
GradientStop: [{
Color: "#1B84FE",
Offset: 0.01
}, {
Color: "#0079ff",
Offset: 0.9
}]
}
},
Border: {
PPType: PP.LinearGradientBrush,
StartPoint: "0, 0",
EndPoint: "1, 0.5",
GradientStops: {
GradientStop: [{
Color: "#80c4ff",
Offset: 0.01
}, {
Color: "#0065CF",
Offset: 0.9
}]
}
},
BorderWidth: 1,
StartSize: 0.06,
EndSize: 0.06,
Offset: 0.395,
ZIndex: 0
}, {
StartValue: 45,
EndValue: 90,
Background: {
PPType: PP.SolidColorBrush,
Color: "#A3BD3E"
},
Background: //зеленый
{
PPType: PP.LinearGradientBrush,
StartPoint: "0, 0",
EndPoint: "1, 0.5",
GradientStops: {
GradientStop: [{
Color: "#6A851F",
Offset: 0.1
}, {
Color: "#A3BD3E",
Offset: 0.7
}]
}
},
Border: {
PPType: PP.LinearGradientBrush,
StartPoint: "0, 0",
EndPoint: "1, 0.5",
GradientStops: {
GradientStop: [{
Color: "#C9D7A6",
Offset: 0.1
}, {
Color: "#6A851F",
Offset: 0.8
}]
}
},
BorderWidth: 1,
StartSize: 0.06,
EndSize: 0.06,
Offset: 0.395,
ZIndex: 4
}, {
StartValue: 90,
EndValue: 135,
Background: {
PPType: PP.SolidColorBrush,
Color: "#E8CA26"
},
Background: // желтый
{
PPType: PP.LinearGradientBrush,
StartPoint: "0, 0.5",
EndPoint: "1, 0.5",
GradientStops: {
GradientStop: [{
Color: "#ffde00",
Offset: 0.01
}, {
Color: "#E8CA26",
Offset: 0.9
}]
}
},
Border: {
PPType: PP.LinearGradientBrush,
StartPoint: "0, 0",
EndPoint: "1, 0.5",
GradientStops: {
GradientStop: [{
Color: "#B19400",
Offset: 0.01
}, {
Color: "#ffd900",
Offset: 0.9
}]
}
},
BorderWidth: 1,
StartSize: 0.06,
EndSize: 0.06,
Offset: 0.395,
ZIndex: 9
}, {
StartValue: 136,
EndValue: 179.5,
Background: //красный
{
PPType: PP.LinearGradientBrush,
StartPoint: "0, 0.5",
EndPoint: "1, 0.5",
GradientStops: {
GradientStop: [{
Color: "#ff462c",
Offset: 0.01
}, {
Color: "#c00000",
Offset: 0.9
}]
}
},
Border: {
PPType: PP.LinearGradientBrush,
StartPoint: "0, 0",
EndPoint: "1, 0.5",
GradientStops: {
GradientStop: [{
Color: "#FF8273",
Offset: 0.01
}, {
Color: "#BD0B07",
Offset: 0.9
}]
}
},
BorderWidth: 1,
StartSize: 0.06,
EndSize: 0.06,
Offset: 0.395,
ZIndex: 14
}]
}, {
OuterRadius: "0.95,0.875",
Size: 0,
Length: 180,
StartAngle: 90,
MinValue: 0,
MaxValue: 1000,
CenterPosition: "110,107",
Values: [0, 500, 250, 750, 1000],
Labels: [0, 500, 250, 750, 1000],
LabelFont: {
Color: "#8c8c8c",
Size: 8,
IsBold: false,
FontFamily: PP.Font.Family.Tahoma,
IsItalic: false
},
RotateLabels: false,
Arrows: [{
Name: "Arrow1",
PPType: PP.Ui.LineArrow,
Radius: 50,
Tail: 0,
Border: {
PPType: PP.SolidColorBrush,
Color: "#ff462c"
}
}],
MajorTick: {
PPType: PP.Ui.CircleMarker,
Background: {
PPType: PP.SolidColorBrush,
Color: "#8c8c8c"
},
Size: 0.02,
Style: PP.GaugeStyleLabels.Inner,
Offset: -0.31
},
MinorTick: {
PPType: PP.Ui.CircleMarker,
Background: {
PPType: PP.SolidColorBrush,
Color: "#8c8c8c"
},
Size: 0.01,
Style: PP.GaugeStyleLabels.Inner,
Offset: -0.31
},
PassedMajorTick: {
PPType: PP.Ui.CircleMarker,
Background: {
PPType: PP.SolidColorBrush,
Color: "#ff462c"
},
// толстые точки
Size: 0.02,
Style: PP.GaugeStyleLabels.Inner,
Offset: -0.31
},
PassedMinorTick: {
PPType: PP.Ui.CircleMarker,
Background: {
PPType: PP.SolidColorBrush,
Color: "#ff462c"
},
// маленькие точки
Size: 0.01,
Style: PP.GaugeStyleLabels.Inner,
Offset: -0.31
},
PassedLabelFont: {
Color: "#ff462c",
Size: 8,
IsBold: false,
FontFamily: PP.Font.Family.Tahoma,
IsItalic: false
},
Step: 50
}]
};
speedometer = new PP.Ui.Speedometer(speedsettings);
speedometer.addToNode('speedometer');
speedometer.Click.add(function () {
console.log("click");
});
master = new PP.Ui.GaugeMaster({
ImagePath: "build/img/",
DataView: [speedometer],
ParentNode: "example",
Width: 300,
Height: 500,
PropertyChanged: function (sender, args) {
alert("Настройки изменены")
}
});
</script>
После выполнения примера на странице размещен спидометр с мастером:

При изменении настроек мастера на экран будет выдаваться сообщение «Настройки изменены».
См. также: