PDA

Volledige versie bekijken : Rekenfunctie in Stage


Joepiooo
%Europe/Berlin %615 %2009, 15:46
Hallo,




package{
import flash.display.MovieClip;

public class opdracht4 extends MovieClip{

public function opdracht4() {
init();
}

private function init():void {

var getal:int = 100 * Math.random();

trace ("1 * " + getal + " = " + getal*1);
trace ("2 * " + getal + " = " + getal*2);
trace ("3 * " + getal + " = " + getal*3);
trace ("4 * " + getal + " = " + getal*4);
trace ("5 * " + getal + " = " + getal*5);
trace ("6 * " + getal + " = " + getal*6);
trace ("7 * " + getal + " = " + getal*7);
trace ("8 * " + getal + " = " + getal*8);
trace ("9 * " + getal + " = " + getal*9);
trace ("10 * " + getal + " = " + getal*10);
}
}
}


De bovenstaande code is een rekenfunctie in het output venster.
Er wordt willekeurig een tafel van een getal gekozen.

Nu wil ik dit verder uitwerken alleen wil ik dat het dan in de Stage gebeurt en dat je de tafel kan kiezen.

Dat je een Input textfield hebt waar je een getal in kan vullen en zodra je op een knop "Bereken" klikt er de tafel van dat getal komt.

Iemand suggesties hoe ik hier het beste mee aan de slag kan gaan?
Ben nog niet zo thuis in Flash

Alvast bedankt

Joepiooo
%Europe/Berlin %749 %2009, 18:58
Iemand?

LuchtJon
%Europe/Berlin %765 %2009, 19:22
Zet een tekstveld en een knop in je flash document en geef deze de variabelenamen van bijvoorbeeld 'tekstveld' en 'knop'. Je moet er wel voor zorgen via de properties dat je tekstveld dynamisch is, en dat het een input field is.
In je code kun je dan een event listener aan de knop hangen: knop.addEventListener(MouseEvent.CLICK, knopGeklikt);

in de functie knopGeklikt, die je dan nog moet maken, kun je het tekstveld uitlezen. Als er dan een nummer instaat roep je de tafelfunctie aan met als parameter dat nummer.

Kort voorbeeld:


function knopGeklikt(e:MouseEvent):void {
tafel_functie(int(tekstveld.text));
}


Wanneer je nu alleen een getal anders dan een nummer invoert zal flash een error geven omdat dat niet geconverteerd kan worden naar een nummer. Hier zul je dan nog iets op moeten verzinnen.

Hoop dat ik je hiermee heb geholpen.

Groeten.

Jan
%Europe/Berlin %781 %2009, 19:45
Wanneer je nu alleen een getal anders dan een nummer invoert zal flash een error geven omdat dat niet geconverteerd kan worden naar een nummer. Hier zul je dan nog iets op moeten verzinnen.
tekstveld.maxChars=1;
tekstveld.restrict="1-9";

Groeten,
Jan

Joepiooo
%Europe/Berlin %821 %2009, 20:43
Bedankt voor de hulp

Je kan zien dat adnez het wel snapt ;)

Ik dus niet :#

Aangezien ik nog niet heel erg veel script met AS3 weet ik niet goed wat ik precies met het geen dat je me gegeven hebt aan moet. Ligt aan mij :(

Bedankt voor de moeite in ieder geval

Jan
%Europe/Berlin %846 %2009, 21:19
package
{
import flash.display.*;
import flash.text.*;
import flash.events.*;

public class MyMain extends MovieClip
{
private var _button:Sprite = new Sprite();
private var _tfInput:TextField = new TextField();
private var _tfOutput:TextField = new TextField();

public function MyMain()
{
addChild(_button);
addChild(_tfInput);
addChild(_tfOutput);

_tfInput.restrict = "1-9";
_tfInput.type = TextFieldType.INPUT;
_tfInput.maxChars = 1;
_tfInput.border = true;
_tfInput.width = _tfInput.height = 20;
_tfInput.addEventListener(Event.CHANGE, showTables);//commenten indien je via de button wil werken

_tfOutput.autoSize = "left";
_tfOutput.visible = false;
_tfOutput.border = true;
_tfOutput.y = _tfInput.height + 5;

_button.x = _tfInput.width + 5;
_button.graphics.beginFill(0xff0000);
_button.graphics.drawRect(0, 0, 40, 20);
_button.buttonMode = true;
_button.addEventListener(MouseEvent.MOUSE_DOWN, showTables);
}

private function showTables(event:Event):void
{
_tfOutput.text = "";
_tfOutput.visible = true;
for (var i:int=1; i<=10; i++)
{
_tfOutput.appendText(i + " * " + _tfInput.text + " = " + int(_tfInput.text) * i + "\n");
}
}
}
}

Groeten;
Jan

Joepiooo
%Europe/Berlin %872 %2009, 21:57
Super bedankt

Heb hier en daar wat aangepast en het werkt super:)

Tnx