Copy link to clipboard
Copied
Hi, I'm trying to figure out a problem with the use of radio buttons, and radio button groups. I'm trying to set a value to each radio button, so and then use if-tests to use them in my equation. But my radio buttons value won't show up, and I get this error;
Scene 1; Layer 'Layer_1', Frame 1, Line 166, Column 17 1120: Access of undefined property event
Hope someone can help.
This is my code:
import fl.controls.ComboBox;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.display.MovieClip;
import fl.controls.RadioButton;
import fl.controls.RadioButtonGroup;
import fl.controls.DataGrid;
import fl.data.DataProvider;
import fl.controls.dataGridClasses.DataGridColumn;
// Her koder jeg en knapp som gir informasjon angående applikasjonen, og hva man skal gjøre
btnInfo.addEventListener(MouseEvent.MOUSE_OVER, visInfo);
function visInfo(evt: MouseEvent): void {
txtInformasjon.visible = true;
stage.addChild(tabell);
var myFormat: TextFormat = new TextFormat();
myFormat.font = "Verdana";
myFormat.color = 0x000000;
myFormat.size = 15;
txtInformasjon.defaultTextFormat = myFormat;
// !!! text content must come last
txtInformasjon.text = "Dette er en treningskalkulator som beregner kaloriforbruket ditt under aktiviteten du har valgt. Velg aktivitet, så intensitet og så varighet, deretter beregner appen alt for deg!";
}
btnInfo.addEventListener(MouseEvent.MOUSE_OUT, sjulInfo);
function sjulInfo(evt: MouseEvent): void {
txtInformasjon.visible = false;
stage.removeChild(tabell);
}
// -------------------- Del 1: Info ---------------------
//Steg 1: Drar en datagrid til stage, og sletter den. Deretter fyller jeg inn info ang. aktiviteter og intensitet
var tabell: DataGrid = new DataGrid();
tabell.x = 300;
tabell.y = 75;
tabell.width = 500;
tabell.height = 125;
//Steg 3: Setter inn kolonner og rader
var kol1: DataGridColumn = new DataGridColumn("Aktivitet");
var kol2: DataGridColumn = new DataGridColumn("Kcal_per_time");
var kol3: DataGridColumn = new DataGridColumn("Tom");
var kol4: DataGridColumn = new DataGridColumn("Intensivitet");
var kol5: DataGridColumn = new DataGridColumn("Prosent");
// alle kolonnene legges til i tabellen
tabell.addColumn(kol1);
tabell.addColumn(kol2);
tabell.addColumn(kol3);
tabell.addColumn(kol4);
tabell.addColumn(kol5);
//Steg 4: Fyller inn alle cellene med korrekt info
tabell.addItem({
Aktivitet: "Aerobics",
Kcal_per_time: "814",
Tom: ".",
Intensivitet: "Lav",
Prosent: "80% av normalen"
});
tabell.addItem({
Aktivitet: "Bordtennis",
Kcal_per_time: "236",
Tom: ".",
Intensivitet: "Middels",
Prosent: "100% av normalen"
});
tabell.addItem({
Aktivitet: "Fotball",
Kcal_per_time: "510",
Tom: ".",
Intensivitet: "Høy",
Prosent: "120% av normalen"
});
tabell.addItem({
Aktivitet: "Golf",
Kcal_per_time: "244",
Tom: ".",
Intensivitet: ".",
Prosent: "."
});
tabell.addItem({
Aktivitet: "Jogging",
Kcal_per_time: "666",
Tom: ".",
Intensivitet: ".",
Prosent: "."
});
// -------------------- Del 2: Appen ---------------------
//Steg 1: Drar en ComboBox + radiobutton til stage, før jeg sletter de igjen
//Steg 2: Henter ComboBoxen, og legger aktivitetene inn i ComboBoxen
var aktivitet: ComboBox = new ComboBox();
aktivitet.x = 50;
aktivitet.y = 150;
aktivitet.width = 150;
aktivitet.prompt = "Velg en aktivitet";
stage.addChild(aktivitet);
aktivitet.addItem({
label: "Aerobics"
});
aktivitet.addItem({
label: "Bordtennis"
});
aktivitet.addItem({
label: "Fotball"
});
aktivitet.addItem({
label: "Golf"
});
aktivitet.addItem({
label: "Jogging"
});
//Steg 3: Henter radiobuttons
var lav: RadioButton = new RadioButton();
var middels: RadioButton = new RadioButton();
var hoy: RadioButton = new RadioButton();
var rbGrp: RadioButtonGroup = new RadioButtonGroup ("intensivitet");
lav.x = 50;
lav.y = 210;
middels.x = 50;
middels.y = 240;
hoy.x = 50;
hoy.y = 270;
lav.value = 0.80;
hoy.value = 1.20;
lav.label = "Lav";
middels.label = "Middels";
hoy.label = "Høy";
stage.addChild(lav);
stage.addChild(middels);
stage.addChild(hoy);
lav.group = middels.group = hoy.group = rbGrp;
//Steg 4: Definerer nødvendige variabler, samt tømmer tekstbokser
txtMin.text = "";
txtMin.restrict = "0-9";
txtSvar.text = "";
var minutt: int = 0;
var forbruk: int = 0;
var sport: String = "";
var intensivitet: int = 0;
rbGrp.addEventListener (MouseEvent.CLICK, valg);
function valg (evt: MouseEvent) : void {
intensivitet = event.target.selection.value;
}
btnKalori.addEventListener(MouseEvent.CLICK, kalori);
function kalori(evt: MouseEvent): void {
minutt = int(txtMin.text);
sport = aktivitet.selectedLabel;
if (sport == "Aerobics") {
forbruk = (814/60 * intensivitet * minutt);
txtSvar.text = "Kaloriforbruket ditt var: " + forbruk + " kcal";
}
/* if (sport == "Aerobics" && middels.enabled) {
forbruk = (814/60 * minutt);
txtSvar.text = "Kaloriforbruket ditt var: " + forbruk + " kcal";
}
if (sport == "Aerobics" && hoy.enabled) {
forbruk = (814/60 * 1.20 * minutt);
txtSvar.text = "Kaloriforbruket ditt var: " + forbruk + " kcal";
}*/
}
in the future, indicate to us the line with the error.
this:
function valg (evt: MouseEvent) : void {
intensivitet = event.target.selection.value;
}
should be:
function valg (evt: MouseEvent) : void {
intensivitet = evt.target.selection.value;
}
Copy link to clipboard
Copied
in the future, indicate to us the line with the error.
this:
function valg (evt: MouseEvent) : void {
intensivitet = event.target.selection.value;
}
should be:
function valg (evt: MouseEvent) : void {
intensivitet = evt.target.selection.value;
}
Copy link to clipboard
Copied
I'll indicate to you with the error line next time. I have another problem with this code, when I run it the radio buttons value for lav and hoy doesn't work correctly. Do you know how to fix this, so their value works correctly? Heres my updated code:
import fl.controls.ComboBox;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.display.MovieClip;
import fl.controls.RadioButton;
import fl.controls.RadioButtonGroup;
import fl.controls.DataGrid;
import fl.data.DataProvider;
import fl.controls.dataGridClasses.DataGridColumn;
// Her koder jeg en knapp som gir informasjon angående applikasjonen, og hva man skal gjøre
btnInfo.addEventListener(MouseEvent.MOUSE_OVER, visInfo);
function visInfo(evt: MouseEvent): void {
txtInformasjon.visible = true;
stage.addChild(tabell);
var myFormat: TextFormat = new TextFormat();
myFormat.font = "Verdana";
myFormat.color = 0x000000;
myFormat.size = 15;
txtInformasjon.defaultTextFormat = myFormat;
// !!! text content must come last
txtInformasjon.text = "Dette er en treningskalkulator som beregner kaloriforbruket ditt under aktiviteten du har valgt. Velg aktivitet, så intensitet og så varighet, deretter beregner appen alt for deg!";
}
btnInfo.addEventListener(MouseEvent.MOUSE_OUT, sjulInfo);
function sjulInfo(evt: MouseEvent): void {
txtInformasjon.visible = false;
stage.removeChild(tabell);
}
// -------------------- Del 1: Info ---------------------
//Steg 1: Drar en datagrid til stage, og sletter den. Deretter fyller jeg inn info ang. aktiviteter og intensitet
var tabell: DataGrid = new DataGrid();
tabell.x = 300;
tabell.y = 75;
tabell.width = 500;
tabell.height = 125;
//Steg 3: Setter inn kolonner og rader
var kol1: DataGridColumn = new DataGridColumn("Aktivitet");
var kol2: DataGridColumn = new DataGridColumn("Kcal_per_time");
var kol3: DataGridColumn = new DataGridColumn("Tom");
var kol4: DataGridColumn = new DataGridColumn("Intensivitet");
var kol5: DataGridColumn = new DataGridColumn("Prosent");
// alle kolonnene legges til i tabellen
tabell.addColumn(kol1);
tabell.addColumn(kol2);
tabell.addColumn(kol3);
tabell.addColumn(kol4);
tabell.addColumn(kol5);
//Steg 4: Fyller inn alle cellene med korrekt info
tabell.addItem({
Aktivitet: "Aerobics",
Kcal_per_time: "814",
Tom: ".",
Intensivitet: "Lav",
Prosent: "80% av normalen"
});
tabell.addItem({
Aktivitet: "Bordtennis",
Kcal_per_time: "236",
Tom: ".",
Intensivitet: "Middels",
Prosent: "100% av normalen"
});
tabell.addItem({
Aktivitet: "Fotball",
Kcal_per_time: "510",
Tom: ".",
Intensivitet: "Høy",
Prosent: "120% av normalen"
});
tabell.addItem({
Aktivitet: "Golf",
Kcal_per_time: "244",
Tom: ".",
Intensivitet: ".",
Prosent: "."
});
tabell.addItem({
Aktivitet: "Jogging",
Kcal_per_time: "666",
Tom: ".",
Intensivitet: ".",
Prosent: "."
});
// -------------------- Del 2: Appen ---------------------
//Steg 1: Drar en ComboBox + radiobutton til stage, før jeg sletter de igjen
//Steg 2: Henter ComboBoxen, og legger aktivitetene inn i ComboBoxen
var aktivitet: ComboBox = new ComboBox();
aktivitet.x = 50;
aktivitet.y = 150;
aktivitet.width = 150;
aktivitet.prompt = "Velg en aktivitet";
stage.addChild(aktivitet);
aktivitet.addItem({
label: "Aerobics"
});
aktivitet.addItem({
label: "Bordtennis"
});
aktivitet.addItem({
label: "Fotball"
});
aktivitet.addItem({
label: "Golf"
});
aktivitet.addItem({
label: "Jogging"
});
//Steg 3: Henter radiobuttons
var lav: RadioButton = new RadioButton();
var middels: RadioButton = new RadioButton();
var hoy: RadioButton = new RadioButton();
var rbGrp: RadioButtonGroup = new RadioButtonGroup ("intensivitet");
lav.x = 50;
lav.y = 210;
middels.x = 50;
middels.y = 240;
hoy.x = 50;
hoy.y = 270;
lav.value = 0.8;
middels.value = 1;
hoy.value = 1.2;
lav.label = "Lav";
middels.label = "Middels";
hoy.label = "Høy";
stage.addChild(lav);
stage.addChild(middels);
stage.addChild(hoy);
lav.group = middels.group = hoy.group = rbGrp;
//Steg 4: Definerer nødvendige variabler, samt tømmer tekstbokser
txtMin.text = "";
txtMin.restrict = "0-9";
txtSvar.text = "";
var minutt: int = 0;
var forbruk: int = 0;
var sport: String = "";
var intensivitet: int = 0;
var kcal: Array = [814/60, 236/60, 510/60, 244/60, 666/60]; // aerobics, bordtennis, fotball, golf, jogging
rbGrp.addEventListener (MouseEvent.CLICK, valg);
function valg (evt: MouseEvent) : void {
intensivitet = evt.target.selection.value;
}
btnKalori.addEventListener(MouseEvent.CLICK, kalori);
function kalori(evt: MouseEvent): void {
minutt = int(txtMin.text);
sport = aktivitet.selectedLabel;
if (sport == "Aerobics") {
forbruk = (kcal[0] * intensivitet * minutt);
txtSvar.text = "Kaloriforbruket ditt var: " + forbruk + " kcal";
}
if (sport == "Bordtennis") {
forbruk = (kcal[1] * intensivitet * minutt);
txtSvar.text = "Kaloriforbruket ditt var: " + forbruk + " kcal";
}
if (sport == "Fotball") {
forbruk = (kcal[2] * intensivitet * minutt);
txtSvar.text = "Kaloriforbruket ditt var: " + forbruk + " kcal";
}
if (sport == "Golf") {
forbruk = (kcal[3] * intensivitet * minutt);
txtSvar.text = "Kaloriforbruket ditt var: " + forbruk + " kcal";
}
if (sport == "Jogging") {
forbruk = (kcal[4] * intensivitet * minutt);
txtSvar.text = "Kaloriforbruket ditt var: " + forbruk + " kcal";
}
}
Copy link to clipboard
Copied
no, i can't say. that's beyond my limit to debug without duplicating your setup.