AW: Variablen berechnen mit as3
Hi,
So. erstmal sorry wegen den unnötigen fragen^^.
Kein Problem.
ich hatte den angegebenen code nicht 100%ig übernommen weil ich ihn zu schnell überflogen habe. Nun habe ich das Problem das die functions nicht richtig angesprochen werden.
Hattest Du noch immer nicht
. Da waren noch einige kleine Fehler drin.
Hier mein kompletter code. Eine frage noch. Wie muß ich die class aufbauen wenn ich neben dem hauptchar noch 2 andere chars haben möchte ?
also class hauptchar
class npc1
class npc2
Du hättest eine Basisklasse (Deine aktuelle Dokumentenklasse), die alle Charaktere verwaltet. Ich gehe dann mal davon aus, dass Du für jeden einzelnen Charakter ein eigenes Aussehen hast?
Dann hättest Du eine Basisklasse Charakter, die alles kann, was alle Deine Charaktere können müssen. Und deine einzelnen Charaktere sind wiederum eigene Klassen, die aber eine Ableitung von Charakter sind.
Wenn es kein spezielles Aussehen für deine Charaktere gibt, ein Beispiel (in der Dokumentenklasse):
var char1:Charakter= new Charakter("Name1", "Basisgehalt");
var char2:Charakter= new Charakter("Name2", "Hohes gehalt");
this.charArray=new Array();//Möglich ist auch ein Vector-Objekt ("new Vector.<Charakter>()")
this.charArray.push(char1);
this.charArray.push(char2);
public class attributes extends MovieClip
{
....
public function Attribute (){
Beides in rot gestellte muss den gleichen Namen haben. Die Datei selbst muss dann auch so heißen, aber mit der Endung .as.
Auf Basis Deines geposteten Scripts, müsste es so sein (ich hab die Groß-/Kleinschreibung geändert, da war auch noch ein Fehler drin, außerdem gewöhnt man sich an die Konventionen, die in vielen Programmiersprache herrschen.)
Geändert wurde zum Beispiel:
wertstr -> wertStr_txt //Textfelder haben meist (kein Muss) die Endung _txt
btntrainstr -> trainStrength_btn //Buttons haben Endung _btn (kein Muss)
Wenn Du in der fla-Datei die Namen der Btn und Txt (also Buttons und Textfelder) änderst, solltest Du nichts in dem Script ändern brauchen.
Code:
package {
import flash.display.MovieClip;
import flash.events.*;
import flash.text.TextField;
import flash.display.SimpleButton;
public class Attribute extends MovieClip {
public var wertStr_txt:TextField;
public var wertKno_txt:TextField;
public var wertCha_txt:TextField;
public var wertHealth_txt:TextField;
public var wertDollar_txt:TextField;
public var wertDays_txt:TextField;
public var searchPartner_btn:SimpleButton;
public var trainStrength_btn:SimpleButton;
public var trainKno_btn:SimpleButton;
public var trainCharme_btn:SimpleButton;
public var sleep_btn:SimpleButton;
public var work1_btn:SimpleButton;
public var work2_btn:SimpleButton;
public var work3_btn:SimpleButton;
protected var statusStrenght:uint=10;
protected var statusKnowledge:uint=10;
protected var statusCharme:uint=10;
protected var statusHealth:uint=100;
protected var statusDollar:uint=100;
protected var statusDays:uint=1;
//----------------------------------------------------
public function Attribute() {
wertStr_txt.text=String(statusStrenght);
wertKno_txt.text=String(statusKnowledge);
wertCha_txt.text=String(statusCharme);
wertHealth_txt.text=String(statusHealth);
wertDollar_txt.text=String(statusDollar);
wertDays_txt.text=String(statusDays);
// Methode gotoPartners existiert nicht
//searchPartner_btn.addEventListener(MouseEvent.MOUSE_DOWN, gotoPartners);
trainStrength_btn.addEventListener(MouseEvent.MOUSE_DOWN , addStr);
trainKno_btn.addEventListener(MouseEvent.MOUSE_DOWN , addKno);
trainCharme_btn.addEventListener(MouseEvent.MOUSE_DOWN, addCharme);
// Methode getSleep existiert nicht
//sleep_btn.addEventListener(MouseEvent.MOUSE_DOWN, getSleep);
work1_btn.addEventListener(MouseEvent.MOUSE_DOWN, work1);
work2_btn.addEventListener(MouseEvent.MOUSE_DOWN, work2);
work3_btn.addEventListener(MouseEvent.MOUSE_DOWN, work3);
}
protected function addStr(e:MouseEvent):void {
if (statusDollar>=25) {
statusStrenght+=Math.random()*5;
statusStrenght=Math.round(statusStrenght*10)/10;
wertStr_txt.text=String(statusStrenght);
statusDollar-=25;
wertDollar_txt.text=String(statusDollar);
statusHealth-=25;
wertHealth_txt.text=String(statusHealth);
}
}
protected function addKno(e:MouseEvent):void {
//attribTrain==1; //Zuweisungen immer mit einfachem =, bei Vergleichen fehlt das if
statusKnowledge+=Math.random()*5;
statusKnowledge=Math.round(statusKnowledge*10)/10;
wertKno_txt.text=String(statusKnowledge);
statusDollar-=25;
wertDollar_txt.text=String(statusDollar);
statusHealth-=25;
wertHealth_txt.text=String(statusHealth);
}
protected function addCharme(e:MouseEvent):void {
//attribTrain==1; //Zuweisungen immer mit einfachem =, bei Vergleichen fehlt das if
statusCharme+=Math.random()*5;
statusCharme=Math.round(statusCharme*10)/10;
wertCha_txt.text=String(statusCharme);
statusDollar-=25;
wertDollar_txt.text=String(statusDollar);
statusHealth-=25;
wertHealth_txt.text=String(statusHealth);
}
protected function work1(e:MouseEvent):void {
statusDollar+=statusStrenght*2.5;
wertDollar_txt.text=String(statusDollar);
}
function work2(e:MouseEvent):void {
statusDollar+=statusKnowledge*5.5;
wertDollar_txt.text=String(statusDollar);
}
function work3(e:MouseEvent):void {
statusDollar+=statusCharme*1.5;
wertDollar_txt.text=String(statusDollar);
}
//----------------------------------------------------
}
}
So, wenn noch Fragen sind, stelle Sie einfach.
MFG ad86