Toon posts:

[Flash MX 2004] Controle input tekst werkt niet

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb met actionscript een stukje code onder mijn button die controleert of een input textbox ook daadwerkelijk tekst bevat. Is dat het geval, dan wordt de volgende scene opgevraagd en gaat het filmpje verder met spelen. Is dat niet het geval, dan wordt de scene daarna opgevraagd en komt er een foutmelding te staan. Nu het probleem: wanneer je iets invult in de textbox en daarna op enter klikt werkt het prima. Alleen: laat je de box leeg en klikt dan op enter, dan gaat het filmpje OOK door met spelen zonder eerst een foutmelding te geven! Plaats je eerst een letter en drukt dan meteen op je backspace, dan klopt het wel.

Ik gebruik deze code voor de enter knop:

on(release){
if(naam==""){
gotoAndStop(framenummer);
} else {
gotoAndPlay(framenummer);
}
}

Mocht je de source willen bekijken, die staat op http://www.frozen-land.com/temp/scientist.fla.

Ik hoop dat er iemand is die me hiermee kan helpen...

  • XangadiX
  • Registratie: Oktober 2000
  • Laatst online: 20-05 08:42

XangadiX

trepanatie is zóó kinderachtig

en als je naam.text = "" of naam.text=null gebruikt?

je gebruikt nu de variable, maar eigenlijk is het netter om de textbox een naam te geven en hem daarvandaan te controleren. Zoek anders even textfield(object) op in je as-dictonary

Stoer; Marduq


Verwijderd

Topicstarter
Allebei geprobeerd, maar geen resultaat.

Ik heb ook geprobeerd om de tekstbox een naam te geven in plaats van met de variabele te werken, maar dan is het net of hij de hele box niet meer ziet. Ik heb wel dezelfde actionscript code gebruikt, zou ik die anders aan moeten passen om met een naam te werken?

  • Scyth
  • Registratie: Juli 2001
  • Laatst online: 16-03-2024

Scyth

Fat finger, three beer

code:
1
if(naam eq ""){

[ Voor 24% gewijzigd door Scyth op 03-05-2004 15:12 ]

Dell Studio XPS 16
Project: BavBierSub 1.0 BavBierSub 2.0


Verwijderd

Topicstarter
Helaas, nog hetzelfde probleem. Als je de tekstbalk leeg laat gaat hij gewoon door met spelen, voer je een letter in en wis je die meteen, dan gaat het wel goed.

Verwijderd

code:
1
2
3
4
if ( naam.length > 0 )
  submit...
else
  error ...


of

code:
1
2
3
4
if ( myText.text.length > 0 )
  submit...
else
  error ...


Waarschijnlijk doe je dit fout, je zit namelijk in de scope van de button (onRelease) ... probeer eens _parent.naam uit.

[ Voor 80% gewijzigd door Verwijderd op 03-05-2004 15:28 ]


  • Guillome
  • Registratie: Januari 2001
  • Niet online

Guillome

test

url doet het niet.
Maar dit moet echt werken
Plaats een text-input op je ding. geef `m de instance naam "test"
doe dan in je code van dat component:
on(enter)
{
trace(text);
trace(text == "");
}

Als je een dynamic text box wil gebruiken moet het weer anders, maar ik neem aan dat je een text-input gaat gebruiken?

If then else matters! - I5 12600KF, Asus Tuf GT501, Gigabyte Gaming OC 16G 5080 RTX, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


Verwijderd

Topicstarter
Ik heb de .fla even op een andere server gezet. http://members1.chello.nl/~m.g.berlijn/scientist.fla

is de nieuwe link.
XLerator schreef op 03 mei 2004 @ 15:30:
url doet het niet.
Maar dit moet echt werken
Plaats een text-input op je ding. geef `m de instance naam "test"
doe dan in je code van dat component:
on(enter)
{
trace(text);
trace(text == "");
}

Als je een dynamic text box wil gebruiken moet het weer anders, maar ik neem aan dat je een text-input gaat gebruiken?
Het is de bedoeling om later in de site de ingevoerde naam weer op te roepen. Als ze op de hoofdpagina terecht komen, zal er links bovenin een box staan met de tekst: Logged in as [username]. Ik weet niet of je dat bedoelde met het gebruik van een text-input?

[ Voor 74% gewijzigd door Verwijderd op 03-05-2004 16:09 ]


  • Guillome
  • Registratie: Januari 2001
  • Niet online

Guillome

test

Die naam kan je in een variable proppen he?
Je noemde zelf al een text-input, maar ik dacht dat je je misschien vergistte met een dynamic text ding :)

If then else matters! - I5 12600KF, Asus Tuf GT501, Gigabyte Gaming OC 16G 5080 RTX, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


Verwijderd

Topicstarter
XLerator schreef op 03 mei 2004 @ 16:13:
Die naam kan je in een variable proppen he?
Je noemde zelf al een text-input, maar ik dacht dat je je misschien vergistte met een dynamic text ding :)
Die naam was me gelukt! Alleen dat controle-probleem bezorgt me grijze haren.

Ik ben een complete noob in actionscripting, ik heb net de input box de naam text gegeven. Op de enter knop heb ik jou code geplaatst. Toen ik de zaak wilde exporteren kreeg ik een melding dat de handler niet klopte, dus heb ik van (enter) (release) gemaakt. Bij het testen van de knop kreeg ik deze melding:

_level0.text
false

Misschien een idee wat ik fout doe??

  • Guillome
  • Registratie: Januari 2001
  • Niet online

Guillome

test

Ja, maar ik kan het zo niet oplossen.
Ok open een leeg flash document.
Plak daar 1 text-input object in (vanaf rechts uit dat lijstje)
Klik in de 'stage' de text-input aan zodat deze geselecteerd is (wat als het goed is al zo is)
Zet in de object inspector de instance name op "test"
Druk dan op F9 voor het actionscript venster
Tiep daar hetvolgende letterlijk in (copy paste)
code:
1
2
3
4
5
on(enter)
{
  trace(text);
  trace(text == "");
}


en test het

[ Voor 8% gewijzigd door Guillome op 03-05-2004 16:31 ]

If then else matters! - I5 12600KF, Asus Tuf GT501, Gigabyte Gaming OC 16G 5080 RTX, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


Verwijderd

Topicstarter
En de code onder de enter-knop gewoon laten staan?

edit: In het actionscript venster van de input textbox krijg ik te zien: Current selection cannot have actions applied to it.

[ Voor 57% gewijzigd door Verwijderd op 03-05-2004 16:43 ]


  • Guillome
  • Registratie: Januari 2001
  • Niet online

Guillome

test

Je moet precies doen wat daar staat, dan werkt het.
Je moet niet een text/label maken, maar een TextInput. :)
Afbeeldingslocatie: http://www.guillome.nl/dump/textinput.jpg


Mijn fla
http://www.guillome.nl/dump/textinput.rar

[ Voor 15% gewijzigd door Guillome op 03-05-2004 16:48 ]

If then else matters! - I5 12600KF, Asus Tuf GT501, Gigabyte Gaming OC 16G 5080 RTX, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


Verwijderd

Topicstarter
Dit werkt! Maar hoe moet ik zoiets aansturen met de enter-knop?

  • Guillome
  • Registratie: Januari 2001
  • Niet online

Guillome

test

Hoe bedoel je? Die 2 regeltjes code voert ie uit als je op enter drukt nu.

If then else matters! - I5 12600KF, Asus Tuf GT501, Gigabyte Gaming OC 16G 5080 RTX, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


Verwijderd

Topicstarter
Ja dat snap ik. Maar is er ook een mogelijkheid dat hij de code uitvoert als je op de knop enter klikt?

En nu ziet hij inderdaad dat er niets in is gevoerd. Hoe laat je hem doorgaan naar het juiste frame?

  • Guillome
  • Registratie: Januari 2001
  • Niet online

Guillome

test

gotoandplay maar das wel heel simpel hoor ;)
Die code kan je ook in een button plaatsen, dan wordt de code zoiets
on(press) // van de button dus
{
_parent.test.text blabla
}

If then else matters! - I5 12600KF, Asus Tuf GT501, Gigabyte Gaming OC 16G 5080 RTX, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


Verwijderd

Topicstarter
XLerator schreef op 03 mei 2004 @ 16:57:
gotoandplay maar das wel heel simpel hoor ;)
Die code kan je ook in een button plaatsen, dan wordt de code zoiets
on(press) // van de button dus
{
_parent.test.text blabla
}
code:
1
2
3
4
5
6
7
8
9
10
11
on(release)
{
  trace(test.text)
{
gotoAndPlay(60);
};
  trace(test.text == "")
{
gotoAndStop(59);
} 
}


Dit dus?

edit: nu springt hij elke keer naar frame 59

[ Voor 9% gewijzigd door Verwijderd op 03-05-2004 17:04 ]


  • Guillome
  • Registratie: Januari 2001
  • Niet online

Guillome

test

Sorry, maar je moet echt eerst basic tutorials gaan doen. Dit schiet niet echt op.
Trace doet nix, die laat alleen de waarde maar zien.
Jij gebruikt het nu als een if oid?
En als deze code onder de button zit, werkt het zowizo niet. Dan moet je eerst _parent doen.
Deze code klopt echt voor geen meter :)

If then else matters! - I5 12600KF, Asus Tuf GT501, Gigabyte Gaming OC 16G 5080 RTX, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


  • Guillome
  • Registratie: Januari 2001
  • Niet online

Guillome

test

on(click)
{
if (_parent.test.text == "") gotoAndPlay(59);
else gotoAndPlay(60);
}

Grrr toch nog gedaan ;)

[ Voor 8% gewijzigd door Guillome op 03-05-2004 17:16 ]

If then else matters! - I5 12600KF, Asus Tuf GT501, Gigabyte Gaming OC 16G 5080 RTX, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


Verwijderd

Topicstarter
Helaas, werkt nog steeds niet. Nu maakt het niets uit of je iets invoert, hij gaat doodleuk door naar frame 60.

  • Guillome
  • Registratie: Januari 2001
  • Niet online

Guillome

test

http://www.guillome.nl/dump/textinput.rar
En nu tutorials gaan volgen hoor! foei

If then else matters! - I5 12600KF, Asus Tuf GT501, Gigabyte Gaming OC 16G 5080 RTX, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


Verwijderd

Topicstarter
Pfff, ik ga aspirine halen...

Als ik die .swf van jou open, en een poosje niets doe, dan komt er onderin 50 te staan.

Ik had een keyframe op 50 en op 60 gemaakt, maar ik kan klikken wat ik wil, hij loopt niet door.

  • Guillome
  • Registratie: Januari 2001
  • Niet online

Guillome

test

euh juist
swf?
onderin?
keyframe? met code?
klikken?
loopt niet door?

If then else matters! - I5 12600KF, Asus Tuf GT501, Gigabyte Gaming OC 16G 5080 RTX, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


Verwijderd

Topicstarter
XLerator schreef op 03 mei 2004 @ 22:11:
euh juist
swf?
onderin?
keyframe? met code?
klikken?
loopt niet door?
Foutje van mij.

De .swf komt van Flash af.
Maar als ik de .fla exporteer komt er na verloop van tijd onderin 50 te staan. Ik heb een nieuwe layer aangemaakt met keyframes op 50 en 60, en op frame 1 een stop gezet (uiteraard heb ik op 50 en 60 ook een stop geplaatst). De layer met de knop en inputtext heb ik doorgetrokken tot het einde.

  • Guillome
  • Registratie: Januari 2001
  • Niet online

Guillome

test

waar onderin komt dan 50 te staan?
Voor zover ik het kan inschatten kan het aan mijn fla niet liggen, omdat die praktisch leeg is :)

If then else matters! - I5 12600KF, Asus Tuf GT501, Gigabyte Gaming OC 16G 5080 RTX, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


Verwijderd

Topicstarter
Geloof het of niet, maar HET WERKT!!

Ik heb een movie clip gemaakt van de enter knop, en binnen die movie een input text gemaakt. Nu heb ik deze code onder de enterknop:

code:
1
2
3
4
5
6
7
on (release) {
        if (naam eq "") {
                gotoAndPlay("Failed", 1);
        } else {
                gotoAndStop ("error");
        }
}


Het gekke is alleen dat ik kan klikken wat ik wil, maar hij loopt niet door naar de scene Failed.

Doe ik iets fout??

  • Guillome
  • Registratie: Januari 2001
  • Niet online

Guillome

test

Ja je doet 1 ding fout. Je vergeet tutorials te doen. Dit is té basic om 10 keer uit te moeten leggen, sorry.
Ik heb een goed werkende fla hier neergezet, ik heb de code hier neergezet. Wat moet ik nog meer doen? Doe gewoon eerst een paar basic AS. tutorials.

tip. doe eens wat vaker een trace er doorheen.
trace(naam) bijvoorbeeld. Die geeft niet de tekst in je input hoor

[ Voor 19% gewijzigd door Guillome op 04-05-2004 12:46 ]

If then else matters! - I5 12600KF, Asus Tuf GT501, Gigabyte Gaming OC 16G 5080 RTX, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


Verwijderd

Topicstarter
Tutorials heb ik vaak genoeg gedaan, geloof het of niet. Maar ik zie er de logica helaas niet van in.

Ik wil alleen weten of het mogelijk is om vanuit een movie clip door te gaan naar een andere scene, aangezien dit nu dus niet gebeurt.

Die .fla van jou, ik heb hem enigszins aangepast. Ik gebruik deze code onder de button:

on(click)
{
if (_parent.test.text == "") trace("frame 2");
else trace("frame 3");
}

Nu heb ik een 2e en een 3e keyframe aangemaakt, met een stop op alle3 de keyframes. Als ik hem exporteer naar .swf en ik klik gaat hij dus niet door naar het juiste frame, maar er gebeurt helemaal niks. Maakt niet uit of je de input leeg laat of er iets invult.

[ Voor 49% gewijzigd door Verwijderd op 04-05-2004 15:46 ]


  • Guillome
  • Registratie: Januari 2001
  • Niet online

Guillome

test

Je gotoAndStop moet je wel voor je root doen, en niet voor je button.
Dus _root.gotoAndStop(bla);
http://www.guillome.nl/dump/textinput.rar

If then else matters! - I5 12600KF, Asus Tuf GT501, Gigabyte Gaming OC 16G 5080 RTX, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


Verwijderd

Topicstarter
Okay, dit werkt nu perfect. Alleen, die code werkt alleen op een button uit de components list, en niet op een eigen gemaakte. Kun je die code niet aanpassen zodat hij op een eigen button werkt, of die button uit de components list doorzichtig of zwart maken?

  • Guillome
  • Registratie: Januari 2001
  • Niet online

Guillome

test

dan moet je waarschijnlijk on(press) oid doen.
Kijk alsjeblieft in de help of doe (meer) tutorials, want nee, ik kan háást niet geloven dat je meerdere basic a.s. tutorials gedaan hebt.

If then else matters! - I5 12600KF, Asus Tuf GT501, Gigabyte Gaming OC 16G 5080 RTX, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


Verwijderd

Topicstarter
Zover was ik ook nog wel. Als ik diezelfde code onder mijn button prop krijg ik geen foutmelding bij het exporteren, hij springt alleen meteen door naar de else, dus geeft aan dat er iets in de textbox staat. Net alsof hij de textbox gewoon niet ziet.

edit: HET WERKT!!!

Waarschijnlijk was ik gisteren niet helemaal helder, aangezien er echt domme fouten in de code zaten. Ik heb het op deze manier opgelost:

De input text heb ik als instance name "test" gegeven. De enter-knop bevat nu deze code:

code:
1
2
3
4
5
on(release)
{
  if ( test.text=="") _root.gotoAndStop(59);
    else _root.gotoAndStop(60);
}


En nu doet-ie het prima :)

[ Voor 45% gewijzigd door Verwijderd op 06-05-2004 01:36 ]


  • Guillome
  • Registratie: Januari 2001
  • Niet online

Guillome

test

erg raar dat ie test meteen pakt, omdat je wel in je button zit, dus this is dan de button.
Dan is test.text eigelijk button.test.text
wat krijg je als je dit boven je if zet:
trace(this);
trace(test);

If then else matters! - I5 12600KF, Asus Tuf GT501, Gigabyte Gaming OC 16G 5080 RTX, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


Verwijderd

Topicstarter
Zal het morgen eens testen. Heb een paar nachten erg weinig slaap gehad door die !@#$*knop, dus duik nu lekker me mandje in :)

Edit: dan werkt de knop gewoon, maar krijg ik bij het klikken dit als output:

_level0
_level0.test

Maakt niet uit of het balkje leeg of vol is.

[ Voor 38% gewijzigd door Verwijderd op 06-05-2004 09:17 ]

Pagina: 1