[actionscript] setproperty werkt niet

Pagina: 1
Acties:

  • Marc
  • Registratie: November 2001
  • Laatst online: 01-12-2021
Hallo allen,

Ik ben nu met iets voor school bezig waarbij ik Phidgets moet aansturen met mijn computer, en ik heb gekozen om dit met Flash te doen omdat ik een interface moet maken en dit lijkt mij hiermee het makkelijkst.
Maargoed het werkt dus als volgt: Ik sluit een 'interface kit' via usb op mn pc aan, en hier sluit ik in mijn geval touchpads op aan. deze touchpads geven een waarde 0 als ze aangeraakt worden, en anders een waarde tussen de 600 en 1000.
Ik heb 5 touchpads en hiervoor heb ik de volgende code geschreven:

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
29
30
31
32
var ifkit:PhidgetInterfaceKit;
ifkit = new PhidgetInterfaceKit(); //aanmaken van een nieuwe interfacekit

function restoreAll() {
    setProperty("_root.button1", _visible, true);
    setProperty("_root.button2", _visible, true);
    setProperty("_root.button3", _visible, true);
    setProperty("_root.button4", _visible, true);
}

function doChange(index:Number, newVal:Number) {
    trace("index "+index+" changed to: "+newVal);
    switch (index) {
        case 0:                             // first button
            if (newVal == 0) {              // button 0 is pressed
                restoreAll;
                setProperty("_root.button1", _visible, false);
            }
            break;
        case 1: 
            if (newVal == 0) {              // button 1 is pressed
                restoreAll;
                setProperty("_root.button2", _visible, false);
            }
            break;
        default:
            break;
    }
}

ifkit.onSensorChange = doChange;
ifkit.openRemoteIP("localhost", 5001, -1, "pass"); //link met de server


In de directory van dit bestand staan enkele files die als liberaries dienen, en een ervan is PhidgetInterfaceKit.as.
De functie doChange is al gedefinieerd, index staat voor de button, newVal voor de waarde ervan.
'ifkit.openRemoteIP' is een functie die een verbinding maakt met de PhidgetWebService die op dat moment op mijn computer draait, die zorgt dus voor de communicatie tussen Flash en de interface kit.

Mijn probleem is nu, als ik over de fysieke touchpad 1 ga (index=0), verdwijnt button1 gewoon, maar als ik dan over knop 2 ga, verdwijnt button2 niet, en button1 komt ook niet meer terug.
De waarde van knop 2 veranderd wel degelijk, want dit laat mijn trace zien.

Snapt iemand waarom het alleen werkt bij knop 1 en waarom die knop niet terug komt?

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 21-04 22:35

Creepy

Tactical Espionage Splatterer

Zie HTML, CSS, JavaScript, Flash en Director? Kijk eerst hier!. * Creepy gooit dit topic over de schutting naar Webdesign & Graphics.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • Marc
  • Registratie: November 2001
  • Laatst online: 01-12-2021
ik had het wel gelezen, ik had alleen niet het idee dat het ook maar iets met webdesign dan wel graphics te maken had...

  • alientje
  • Registratie: Maart 2002
  • Laatst online: 11-01-2008

alientje

Hallo?

setProperty is volgens mij een beetje een achterhaalde method voor flash. Tenzij je flash 4 gebruikt, zou ik dit doen:

_root.button1._visible = true;

Overigens kan het ook een probleem zijn dat je buttons geen properties als '_visible' kunt toekennen (dacht ik). Je zou van die button een movieclip moeten maken. Je kunt de actions op die movieclip wel hetzelfde houden. Dus dingen als onRelesase{ bla };

Je moet wel de rollOver effecten en zo van die movieclip zelf programmeren.

3d-en is leuk


  • Marc
  • Registratie: November 2001
  • Laatst online: 01-12-2021
ja het is misschien een beetje verwarrend, maar de objecten die ik 'button' noem zijn gewoon movieclips bij mij.
ik gebruik flash mx2004 dus dan is het misschien wel achterhaald ja, maar dat is denk ik niet het probleem. het rare is dat hij het een keer wel doet, en daarna niet meer.

  • OzBoz
  • Registratie: Maart 2000
  • Laatst online: 16-06-2025

OzBoz

.:.H.:.I.:.P.:.

Ik ben niet meer zo into flash maar waarom
setProperty("_root.button1", _visible, true);
en niet
_root.button1._visible = 1;

ok, ik denk niet dat het het probleem oplost, maar wellicht dan een wat snellere manier dan moeilijk doen ;)

edit:
ow, zal volgende keer eerst hele draad lezen

[ Voor 41% gewijzigd door OzBoz op 12-12-2005 23:55 ]

My Fizion | My 3D prints | LinkedIn


  • alientje
  • Registratie: Maart 2002
  • Laatst online: 11-01-2008

alientje

Hallo?

Weet je zeker dat je probleem aan de setproperty ligt?
9 van de 10 keer als flash een onbegrijpelijke fout krijgt met actionscript heeft dat iets te maken met timing.
Kan het zijn dat er bepaalde functies van buiten flash worden aangeroepen? Ik heb zelf een keer gehad dat wanneer er met javascript twee functies werden aangeroepen in flash dat ie ongeveer de helft van de tijd werk niet werkte. Toen ik de functies een voor een aanriep ging het gewoon goed.

3d-en is leuk


  • Marc
  • Registratie: November 2001
  • Laatst online: 01-12-2021
okee het probleem is opgelost!
iemand hielp me even en het bleek iets heel mafs te zijn: ik moet de functie restoreAll aanroepen met:
code:
1
restoreAll();


beetje raar want als ik doChange op die manier aanroep geeft hij een error.. maargoed, het werkt!
bedankt voor de reacties iedereen.

[ Voor 1% gewijzigd door Marc op 13-12-2005 16:34 . Reden: typooo ]


  • alientje
  • Registratie: Maart 2002
  • Laatst online: 11-01-2008

alientje

Hallo?

doChange kun je inderdaad niet gewoon aanroepen met doChange() omdat deze 2 variabelen mee moet krijgen, namelijk index en newval.
Je zou doChange dus aan moeten roepen met: doChange(iets,nogiets);

3d-en is leuk


  • Marc
  • Registratie: November 2001
  • Laatst online: 01-12-2021
nee dat is dus juist het rare, als ik doChange anders aanroep dan
code:
1
doChange;


krijg ik een error. Dit komt denk ik omdat de functie doChange standaard al in de module PhidgetInterfaceKit zit en ik hem hier alleen herdefinieerd oid..
Pagina: 1