Archief - FLASH: Action script vraagje

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

piotke

Legacy Member
Ik ben momenteel bezig met gegevens via een flash uit ene databanke halen gebruuik makende van ASP pagina's; Da twerkt allemaal. Maar ik wil ook het aantal records variabel maken en flash dus zelf ook zelf tekstvelden laten maken. Allemaal gene probleem, maar bij volgende voorbeeld:

on (press) {
_root.createTextField("mytext",1,100,100,300,100);
mytext.text = "this is my first test field object text";

_root.createTextField("mytext1",1,150,150,300,100);
mytext1.text = "this is my first test field object textcvbcvb";

}

Ik maak 2 tekst vakken aan, echter ik krijg er maar 1 op het scherm. De laatste steeds. Vrij irritand want ik tracht een hele array van veldjes enzo op te bouwen, maar deze basis verdijwt steeds.

Afzonderlijk werken ze van elkaar, maar tesamen, blijft enkel de laatste steeds staan...

piotke

Legacy Member
al gevonden, elke instance moet een andere diepte hebben.
Dus: bv:

createTextField("veld",diepte++,10,20,300,100);
veld.text = this["ID"+i];
createTextField("veld2",diepte++,30,20,300,100);
veld2.text = this["naam"+i]
createTextField("veld3",diepte++,100,20,300,100);
veld3.text = this["info"+i]

Dit is 1 rij uit de ASP pagina die mooi opgevist wordt. Echter de laatste lijn.
Ik zou nu ook graag "veld" variabel maken. Echter dat lukt me niet.

Ik heb geprobeerd in de richting van

createTextField("veld"+i,diepte++,10,20,300,100);
var a = ["veld"+i]
a.text = this["ID"+i];

Maar dat lukt toch niet helemaal :)

squan

Legacy Member
Als het is wat ik denk dat je wil doen:

createTextField("veld"+i,diepte++,10,20,300,100);
a = this["veld"+i];
a.text = this["ID"+i];

piotke

Legacy Member
dat dacht ik ook, maar dit werkt helaas ook niet. Ik ben nu de handleiding voor AS 2.0 aan het afdrukken, 830 bladzijden en dat morgen op het werk doornemen :)

suggesties zijn nog altijd welkom

squan

Legacy Member
nochtans derjuist getest in flash en het werkt wel degelijk. Moet iets zijn dat buiten die 3 lijntjes ligt dan.

Geef eens je volledige loop of functie anders.

piotke

Legacy Member
myData = new LoadVars()
myData.ref = this
myData.load("http://localhost/load.asp")
myData.onLoad = function(succes){
if(succes){

i=0
diepte = 0
while (i<this.aantal) {


//createTextField("veld"+i,diepte++,10,20,300,100);
//["veld"+i]text = this["ID"+i];

createTextField("veld2",diepte++,30,20,300,100);
veld2.text = this["naam"+i]
createTextField("veld3",diepte++,100,20,300,100);
veld3.text = this["info"+i]

i++;
}


}
else trace("Error loading data")
}




de ASP werkt perfect, die geeft me deze records:
&ID0=1&naam0=Piotr&info0=Goed&ID1=2&naam1=Jos&info1=OK&ID2=3&naam2=Fred&info2=Best&aantal=3

squan

Legacy Member
En dit?

Code:
myData = new LoadVars();
myData.ref = this;
myData.load("http://localhost/load.asp");
myData.onLoad = function(succes) {
	
if (succes) {
	for (i=0; i<this.aantal; i++) {
		//eerste veld, ID
		this.createTextField("veld"+i+"_1",this.getNextHighestDepth(),10,20*(i+1),300,100);
		this["veld"+i+"_1"].text = this["ID"+i];
		//tweede veld, naam
		createTextField("veld"+i+"_2",this.getNextHighestDepth(),30,20*(i+1),300,100);
		this["veld"+i+"_2"].text = this["naam"+i];
		//derde veld, info
		createTextField("veld"+i+"_3",this.getNextHighestDepth(),100,20*(i+1),300,100);
		this["veld"+i+"_3"].text = this["info"+i];
	}
} else {
	trace("Error loading data");
}

}

Zou normaal 3 rijen met ID, naam en info onder elkaar moeten weergeven. Je kan eigelijk ook alles in 1 tekstveld plaatsen maar ik ik weet niet wat er nog met de velden moet gebeuren.

orez

Legacy Member
zeg piotke, als je al met een lus waarde werkt, die i gebruikt, waarom gebruik je dan nog een diepte++ ? i bevat ook elke keer een unieke depth hé, dus kun je i gebruiken als diepte.

Of zoals hierboven .getNextHighestDepth() als je niet weet wa de initiële waarde moet zijn ;)

squan

Legacy Member
orez zei:
zeg piotke, als je al met een lus waarde werkt, die i gebruikt, waarom gebruik je dan nog een diepte++ ? i bevat ook elke keer een unieke depth hé, dus kun je i gebruiken als diepte.

Had ik ook eerst gedacht, maar sinds er 3 tekstvelden per i moeten gemaakt worden kon dat niet, enkel laatste zou er staan. Maar idd, normaal alles in 1 tekstveldje en i als diepte is het simpelst.

piotke

Legacy Member
squanman zei:
En dit?


Zou normaal 3 rijen met ID, naam en info onder elkaar moeten weergeven. Je kan eigelijk ook alles in 1 tekstveld plaatsen maar ik ik weet niet wat er nog met de velden moet gebeuren.

lijkt niet te werken, moren eens grodiger bekijken, alvast bedankt

betreffende diepte, die ene fuctie kende ik niet en je moet idd een raster opbouwen eh.

piotke

Legacy Member
for those who might care, de oplossing

myData = new LoadVars()
myData.ref = this
myData.load("http://localhost/load.asp")
myData.onLoad = function(succes){
if(succes){

i=0
diepte=0
while (i<this.aantal) {


var veld = String("veld"+diepte);
createTextField(veld,diepte++,10,(20*i),300,100);
var field = eval(veld);
field.text = this["ID"+i]

var veld1 = String("veld1"+diepte);
createTextField(veld1,diepte++,20,(20*i),300,100);
var field1 = eval(veld1);
field1.text = this["naam"+i]

var veld2 = String("veld2"+diepte);
createTextField(veld2,diepte++,60,(20*i),300,100);
var field2 = eval(veld2);
field2.text = this["info"+i]
i++;
}
}
else trace("Error loading data")
}


myData = new LoadVars()
myData.onLoad = function(){
if(this.writing=="Ok") {
gotoAndStop(2)
status.text = "Submited data was saved"
} else status.text = "Error in saving submitted data"
}

submit.onPress = function(){
if(ID_txt0.text!="" && info_txt0.text !="" && naam_txt0.text!="" && datum_txt.text !=""){
myData.ID = ID_txt0.text
myData.naam = naam_txt0.text
myData.info = info_txt0.text
myData.datum = datum_txt.text
myData.sendAndLoad("http://localhost/save.asp", myData, "POST")
}
}
stop()
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan