Hallo mensen,
Heb het volgende probleem op mijn stage. Hoop dat iemand me kan helpen want ik kom echt niet verder zo. Laat ik het probleem netjes en zorgvuldig uitleggen.
Ik heb in FlashMX een filmpje gemaakt met de volgende objecten:
- Een textveld object met de instance naam "veldje" van het type Input Text. Dit veldje krijgt ook een FlashVAR mee genaamd "varretje"
- Een textveld object met de instance naam "output" van het type Dynamic Text
- Simpele pushbutton met de instance naam "knopje".
Het doel is een bericht te genereren zodra de inhoud van veldje verandert wordt en output te vullen met de text: "Verandering!". Op zich niet moeilijk.
Ik maak gebruik van een listener die kijkt wanneer de inhoud van het textveld verandert. Dit werkt alleen als een gebruiker handmatig de inhoud van het textveld wijzigt. ( door bijv: char toevoegen, verwijderen, plakken, etc)
Om nu ook een bericht te krijgen als er door een script actie de inhoud verandert, gebruikt ik een broadcast voor alle textFields zodra er iets verandert. Ik zal dit aangeven in de code.
De volgende code staat onder frame1 van het filmpje.
Ok dit werkt allemaal prima.
Nu het echte probleem:
Op een VB6 form gooi ik een ShockwaveFlash component en laad het zojuist gemaakte filmpje hierin.
Hierop een knop met de volgende code:
Dit werkt prima.
Het probleem is echter dat de waarde van output niet verandert!
Het is logisch dat de trace niet werkt, of althans dat je die niet te zien krijgt in VB, duh, maar waarom werkt die onChange niet? Is dat nog wat anders dan:
- Handmatige correctie van het textveld ( door bijv: char toevoegen, verwijderen, plakken, etc)
- Scriptmatige veranderingen aangebracht aan de inhoud van het textveld.
Kan iemand mij vertellen of hier een oplossing voor is.
Alvast heel hartelijk dank.
Heb het volgende probleem op mijn stage. Hoop dat iemand me kan helpen want ik kom echt niet verder zo. Laat ik het probleem netjes en zorgvuldig uitleggen.
Ik heb in FlashMX een filmpje gemaakt met de volgende objecten:
- Een textveld object met de instance naam "veldje" van het type Input Text. Dit veldje krijgt ook een FlashVAR mee genaamd "varretje"
- Een textveld object met de instance naam "output" van het type Dynamic Text
- Simpele pushbutton met de instance naam "knopje".
Het doel is een bericht te genereren zodra de inhoud van veldje verandert wordt en output te vullen met de text: "Verandering!". Op zich niet moeilijk.
Ik maak gebruik van een listener die kijkt wanneer de inhoud van het textveld verandert. Dit werkt alleen als een gebruiker handmatig de inhoud van het textveld wijzigt. ( door bijv: char toevoegen, verwijderen, plakken, etc)
Om nu ook een bericht te krijgen als er door een script actie de inhoud verandert, gebruikt ik een broadcast voor alle textFields zodra er iets verandert. Ik zal dit aangeven in de code.
De volgende code staat onder frame1 van het filmpje.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
| Textfield.prototype.setText = function (str)
{
this.text = str;
this.broadcastMessage ("onChanged");
};
// Deze functie zorgt dus voor de broadcast wanneer er in welk textveld dan ook
// iets verandert wordt.
veldje.text = "eerste text";
// om bij creatie van het filmpje het veld te vullen
nieuwObject = new Object();
nieuwObject .onChanged = function()
{
trace("Er is iets verandert!");
output.setText("Verandering!");
};
// Create van een nieuw object aangezien een Listener aan een object gekoppeld wordt.
veldje.addListener(nieuwObject);
// koppeling van de Listener aan het veldje
knopje.onRelease = function()
{
veldje.setText(veldje.text + "nog meer text");
}
// na een druk op de knop wordt er text in het veldje gezet |
Ok dit werkt allemaal prima.
Nu het echte probleem:
Op een VB6 form gooi ik een ShockwaveFlash component en laad het zojuist gemaakte filmpje hierin.
Hierop een knop met de volgende code:
code:
1
2
3
4
| Private Sub Button1_Click() ShockwaveFlash1.FlashVars = "varretje=" +"verandering vanuit VB" End Sub // Dit zorgt er via FlashVars voor dat er variabelen verandert kunnen worden vanuit VB in de Flash movie. |
Dit werkt prima.
Het probleem is echter dat de waarde van output niet verandert!
Het is logisch dat de trace niet werkt, of althans dat je die niet te zien krijgt in VB, duh, maar waarom werkt die onChange niet? Is dat nog wat anders dan:
- Handmatige correctie van het textveld ( door bijv: char toevoegen, verwijderen, plakken, etc)
- Scriptmatige veranderingen aangebracht aan de inhoud van het textveld.
Kan iemand mij vertellen of hier een oplossing voor is.
Alvast heel hartelijk dank.