Toon posts:

[AS] variabele is Object

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb in een flash het volgende stukje code.

code:
1
2
3
name="inputmax"+i;
_root.createTextField(name,1,left,top,150,50);
name.text = "test";


Nu is mijn laatste regel niet juist.
Wat ik kan wel begrijpen. Maar hoe maak ik dat dit wel lukt.
Ik heb al een halve dag gegoogled en hier op GOT staat
er maar héél weinig over ActionScripting in Flash.

Ik kan de laatste regel niet vervangen door:
code:
1
inputmax3="test";

aangezien de name door een lus constant wordt veranderd.

Weet iemand hoe je dit oplost?
Ik heb ook al om de site van macromedia gezocht,
http://www.macromedia.com.../actionscript_dictionary/
maar aangezien ik nog niet met alle termen vertrouwd ben, heb ik er misschien
wel overgelezen.

  • Pelle
  • Registratie: Januari 2001
  • Laatst online: 15:06

Pelle

🚴‍♂️

Kijk eens naar array's :)

code:
1
name["inputmax" + i];

Verwijderd

Topicstarter
Pelle schreef op dinsdag 04 januari 2005 @ 10:50:
Kijk eens naar array's :)

code:
1
name["inputmax" + i];
?? huh ?? wat heeft dat er nu mee te maken?
die "inputmax"+i is de naam die de instance van mijn inputtext moet krijgen hé.

Misschien ben ik nog n00ber dan ik dacht met AS,
maar volgens mij kan ik hier niets mee aanvangen?

  • LB Back
  • Registratie: November 2004
  • Laatst online: 14-03 23:22
probeer eens:

i = 1;
name = "inputmax"+i;
_root.createTextField(name, 1, left, top, 150, 50);
this["inputmax"+i].text = "test";

ik heb ff i op 1 gezet maar in een for loop zou het dus ook werken,
this voor de referentie ervoor geplakt,
["inputmax"+i] is de array methode voor eval

  • LB Back
  • Registratie: November 2004
  • Laatst online: 14-03 23:22
Verwijderd schreef op dinsdag 04 januari 2005 @ 10:54:
[...]


?? huh ?? wat heeft dat er nu mee te maken?
die "inputmax"+i is de naam die de instance van mijn inputtext moet krijgen hé.

Misschien ben ik nog n00ber dan ik dacht met AS,
maar volgens mij kan ik hier niets mee aanvangen?
dat heeft er dus heel veel mee te maken,
Pelle heeft gelijk

Verwijderd

Topicstarter
LB Back schreef op dinsdag 04 januari 2005 @ 11:00:
[...]


dat heeft er dus heel veel mee te maken,
Pelle heeft gelijk
Héhé, ik vreesde al dat dat verkeerd ging opgevat worden.
Ik verwonderde mij alleen maar...

Maar nu lijk het me idd wel logisch dat this eigenlijk een
tabel is met alle elementen. Het lijkt hiermee te lukken.

Er zitten wschl nog wat foutjes in mijn code, waardoor ik niet
direct zie of het wel helemaal juist werkt, maar ik vermoed van wel.

Alvast bedankt!
En uhm ... geef nu toe, Voor een eigenlijk redelijk basic handeling,
is dit toch niet zo logisch ... naja :) als je 't weet wel natuurlijk :)

  • LB Back
  • Registratie: November 2004
  • Laatst online: 14-03 23:22
het gaat niet zozeer om "this" maar eval op een arraymethode heeft nu eenmaal een referentie nodig, ennuh ik vind het best logisch ;)

Verwijderd

Topicstarter
code:
1
2
3
4
5
6
7
8
9
10
11
 function makeInput(left,top,name)
 {
  trace(left + " " + top + " " + name);
  _root.createTextField(name,0,left,top,120,40);
  this[name].type = "dynamic";
  this[name].text = name;
  this[name].border= true;
  this[name].font = "Arial";
  this[name].size = 30;
  this[name].color=0xffffff;
 }


Enkel de volgende lijnen worden correct weergeven.
this[name].text
this[name].border

En hij toont enkel maar de laatste TextField die gemaakt is.
Met trace heb ik al gecontroleerd of hij wel degelijk in de lus komt
(wat het geval is) en met de juiste waarden.

Output van de trace is de volgende:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
130 1150 min1
330 1150 max1
130 1200 min2
330 1200 max2
130 1250 min3
330 1250 max3
130 1300 min4
330 1300 max4
130 1350 min5
330 1350 max5
130 1400 min6
330 1400 max6
130 1450 min7
330 1450 max7
130 1500 min8
330 1500 max8


Ik heb ondertussen ook dit geprobeerd, maar het werkt ook niet.
Nu toont hij zelfs niets meer, ook het laatste textfield niet.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
function makeInput(left,top,name)
{
 trace(left + " " + top + " " + name);
 _root.createTextField(name,0,left,top,120,40);
 aTextFormat = new TextFormat();
 aTextFormat.type = "dynamic";
 aTextFormat.text = name;
 aTextFormat.border= true;
 aTextFormat.font = "Arial";
 aTextFormat.size = 30;
 aTextFormat.color=0xffffff;
 this[name].setTextFormat(aTextFormat);  
}

[ Voor 25% gewijzigd door Verwijderd op 04-01-2005 11:36 . Reden: nog iets ]


Verwijderd

Topicstarter
Ondertussen heb ik de code wat aangepast en wordt alles correct weergegeven,
maar terug alleen maar het laatste inputtext die gemaakt is.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
 function makeInput(left,top,name)
 {
  trace(left + " " + top + " " + name);
  _root.createTextField(name,0,left,top,120,40);
  this[name].background = 0xffffff;
  this[name].text = name;
  this[name].border= true;
  this[name].type = "input";
  aTextFormat = new TextFormat();
  aTextFormat.font = "Arial";
  aTextFormat.size = 30;
  this[name].setTextFormat(aTextFormat);
 }


De input voor de functie is correct (gecontroleerd met "trace")
Het kan dus niet zijn dat alle textveldjes onder elkaar verstopt zitten.

  • LB Back
  • Registratie: November 2004
  • Laatst online: 14-03 23:22
toch moet je ook de depth zetten:
code:
1
2
3
4
5
6
7
8
9
10
11
12
function makeInput(left, top, depth, name) {
    trace(left+" "+top+" "+name);
    _root.createTextField(name, depth, left, top, 120, 40);
    this[name].background = 0xffffff;
    this[name].text = name;
    this[name].border = true;
    this[name].type = "input";
    aTextFormat = new TextFormat();
    aTextFormat.font = "Arial";
    aTextFormat.size = 30;
    this[name].setTextFormat(aTextFormat);
}

Verwijderd

Topicstarter
Het staat ingesteld op 0 (voor alle inputvelden)
ik heb het ondertussen eens op 1 gezet,
maar dat geeft geen verschil.

Zijn er mensen die weten wat het kan zijn.
Dit lijkt me zo basic dat ik het vreemd vind
dat ik geen oplossing vind.

  • LB Back
  • Registratie: November 2004
  • Laatst online: 14-03 23:22
dan bedoel ik voor elk veld een andere depth

Verwijderd

Topicstarter
Jup, ... dit werkt

Maar wat wil die depth dan betekenen?
Want op de site van Macromedia staat dat niet uitgelegd.

  • LB Back
  • Registratie: November 2004
  • Laatst online: 14-03 23:22
er zijn erg veel, veel betere, sites dan de mm site, bijvoorbeeld:
http://www.kirupa.com/developer/actionscript/depths2.htm

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 22-03 18:12
Als ik het niet verkeerd heb kun je ook dit doen:
[code]
textField = _root.createTextField(name, depth, left, top, 120, 40);
textField.text = "blaat";
[/code]
Mischien is dat iets gemakkelijker


Toch niet blijkbaar. Ben in de war met een andere functie.

[ Voor 18% gewijzigd door Michali op 04-01-2005 15:07 ]

Noushka's Magnificent Dream | Unity

Pagina: 1