Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: muu kieli: Flash 8

Sivun loppuun

tesmu [07.05.2006 18:15:26]

#

Eli siis tässä testailin Flash 8 "ohjelmointia". Noh hyvin sitä siinä kirjottelin, mutta yhdessä kohtaa meni hermot ja en jaksanut jatkaa. Nyt ajattelin tulla kysymään, että mikähän on vikana. Eli mulla on tollanen tekstin kirjotus laatikko jonka var arvona on nimi. Sekä toinen laatikko johon ei voi kirjottaa var arvona vastaus. Ja painike jonka actionscriptinä on tällätavalla.

if (nimi == "pentti") {
    vastaus = "Hassu nimi teillä";
}else {
   vastaus = "Kiva nimi";
}

Minkätakia tuo if ei koskaan toteudu?
Aina menee elseen... Olen yrittänyt vääntää ja väkertää tuota if lausetta, mutta se ei suostu toimimaan. Kaikissa flash oppaissa sanotaan, että se pitäisi olla tuollatavalla.

mikeful [07.05.2006 20:49:41]

#

Vaikuttaako isot ja pienet kirjaimet? Jos vaikuttaa, niin muuta jollain tapaa tuo nimi-muuttuja pienille kirjaimille enne tutkimista.

FooBat [08.05.2006 02:25:19]

#

Itselläni on flashistä kokemusta vain yhden harjoitustyön verran, mutta eikö noihin tekstilaatikoihin laiteta tekstejä tyyliin

vastaus.text = "Kiva nimi";

Lisäksi tuli huomattua, että dynaamiset tekstit eivät vain yksinkertaisesti näy, jos niiden yhteydessä käyttää maskia tai fade-efektejä. Osittain tuon kyllä pystyi korjaamaan käyttäen embedded-fontteja.

harma [08.05.2006 10:16:46]

#

Kyllä se ainakin mulla toimii. Onhan sulla on(release) buttonissa?
Voin laittaa esimerkin (Flash MX) jos et saa pelittämään

Lebe80 [08.05.2006 11:06:46]

#

Oletetaan että vastaus on tässä tekstikentän <instance name>, ja embedded-fontit on asetettu.
napin actioneihin:

on(release) {
  // tai on(press), joissain laitteissa ei tuo release toimi, jostain kumman syystä
  var nimiTarkistus = nimi.toLowerCase();
  if (nimiTarkistus == "pentti") {
      vastausTxt = "Hassu nimi teillä";
  }else {
      vastausTxt = "Kiva nimi";
  }
  // asetetaan tekstikenttään teksti
  vastaus.text = vastausTxt;
}

tesmu [08.05.2006 20:45:36]

#

Siis mulla on tuo on(release) { } tuolla mutta siis silti tuo if ei koskaan toteudu

FooBat [09.05.2006 01:59:02]

#

Varmista nyt ensimmäiseksi, että tuota funktiota varmasti kutsutaan nappia painettaessa. Toiseksi tarkista mitä tietoa tarkastettava muuttuja sisältää. Tämä onnistuu helposti ajamalla flash-ohjelmasi editorin mukana tulevalla debuggerilla (control -> Debug Movie). Debuggeri-ikkunassa valitse valintalistasta oikea actionscripti-koodi ja aseta siihen mielenkiintoiseen kohtiin breakpointteja. Nyt paina nappia ja katso pysähtyikö ohjelman suoritus breakpointtiin vai eikö. Jos pysähtyi, pystyt helposti näkemänään onko vertailtava nimi oikeasti pentti vai onko vika jossain muualla.

Lebe80 [09.05.2006 10:13:38]

#

tai toinen tapa, jota itse käytän mieluummin:

on(release) {
  trace("nappia painettu");
  // tai on(press), joissain laitteissa ei tuo release toimi, jostain kumman syystä
  var nimiTarkistus = nimi.toLowerCase();
  trace ("nimiTarkistus: "+nimiTarkistus);
  if (nimiTarkistus == "pentti") {
      vastausTxt = "Hassu nimi teillä";
  }else {
      vastausTxt = "Kiva nimi";
  }
  trace("vastausTxt: "+vastausTxt);

  // asetetaan tekstikenttään teksti
  vastaus.text = vastausTxt;
}

Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta