Autor | Zpráva | ||
---|---|---|---|
matko Profil * |
#1 · Zasláno: 21. 5. 2007, 09:18:26
ahojte,
potrebujem poradit s si pre vas trivilanou vecou ale pre mna dost zlozita. mam casovu os kde mam nikolko butonov a ked kliknem na jeden prejde na urcity snimok a da mu nejaku premennu napr id. Tie dalsie butony su na tej istej ose a ked kliknem na ne s inym id tak sa neurobi nic. Teda ako mam urobit zapis aby po kliknuti na buton sa vzdy ta premenna zmenila na pozadovanu zapis pri kazdom butone je taky. Jasne s inou hodnotou 1,2,3 a pod.
|
||
dredie Profil |
#2 · Zasláno: 21. 5. 2007, 09:24:00
nejak moc nechapu ceho se snazis dosahnout... problem je v cem, ze ti to neskace tam kam ma? nebo ze se nezapise promenna? Nebo ze se nezmeni hodnota promenne?
jinak z toho co tu vidim tak deklarujes lokalni promennou, tudiz se smaze po skonceni funkce. Staci tu prommenou s klicovym slovem var definovat mimo funkci a ve funkci ji pak pouze prirazujes hodnotu. Takze asi nejak takhle: var myId:Number; this.myBtn.onRelease = function () { myId=2; } - ale tezko se radi, kdyz nevim co chces udelat. Jenom ti poradim - pripojovat skript primo k objektum je hodne spatne reseni, vrele ho nedoporucuju d. |
||
matko Profil * |
#3 · Zasláno: 21. 5. 2007, 09:26:01
Nebo ze se nezmeni hodnota promenne?
Ano, nezmeni sa hodnota. Asi som to zle napisal prepacte. |
||
dredie Profil |
#4 · Zasláno: 21. 5. 2007, 09:28:52
matko - no tak v tom pripade je evidentni problem v definovani promenne. Kdykoli definujes promennou uvnitr funkce (v tvem pripade je to oficialne "zmrsena" funkce pripojena primo k instanci symbolu), tak tato promenna existuje pouze v ramci teto funcke. Hodi se to napr. pro mezivypocty, ale v tvem pripade to nemuze fungovat. Staci kdyz ji nadefinujes mimo (viz vyse)
|
||
matko Profil * |
#5 · Zasláno: 21. 5. 2007, 09:38:01
no skusam, skusam, ale vypisuje mi tuto chybu a je sposobena tym ze to nieje prave v tej fce - Statement must appear within on handler
|
||
dredie Profil |
#6 · Zasláno: 21. 5. 2007, 09:42:31
matko: okej, dam ti rychlokurz psani AS 2.0
1. veskery kod davej na jedno misto - vyhnes se nekonzistentnosti kodu (proste nebude rozhazeny po celem flashi. Ne vzdy samozrejme je vyhodne vsechno strkat na jedno misto, ale 99% kodu tam dat muzes) 2. veskery kod davej na 1. frame hlavni time line, kdyz uz tak na jiny frame, ale NIKDY na instanci symbolu 3. pouzivej pouze movie Clipy. Buttony jsou "ulehceni" pro zacatecniky, ale casem zjistis, ze ti praci jenom koplikuji. Samozrejme kod psany na frame vypada jinak nez pripojovany k objektu (viz to co jsem uz psal). Zbytek si uz urcite muzes najit sam (F1 ve flashi :) |
||
matko Profil * |
#7 · Zasláno: 21. 5. 2007, 09:43:26
ja proste potrebujem ze ak kliknem na tie buttony tak nech to prejde na iny 3 snimok a a tam sa zachytia tie premenne a priradia sa inym a vykonava sa dalsi script. No a co sa tyka tych butonov jasne ostavaju na svojom mieste pre dalsie pripadne klikanie a zmenu hodnot premennej
|
||
dredie Profil |
#8 · Zasláno: 21. 5. 2007, 09:44:24
matko - jeste poznamka, pokud by te zajimalo proc ti to haze tu chybu - to, jakym zpusobem se pripojuje kod k instancim symbolu je vlastne vyplnovacka. on(Release) je event handler - to, co je vevntir, se provede pri nadefinovane udalosti. Tudiz nemuzes zadny kod dat mimo event handler (v tomto pripade on(Release)), ptze neni definovana zadna udalost, kdy se ma spustit.
|
||
matko Profil * |
#9 · Zasláno: 21. 5. 2007, 09:50:29
no mam teraz v tom vsetkom vacsi chaos ako som mal a uz mi tu nic nejde.
|
||
dredie Profil |
#10 · Zasláno: 21. 5. 2007, 09:53:53
matko - lol napis mi prosimte srozumitelne co to ma delat to co se snazis vytvorit.
|
||
matko Profil * |
#11 · Zasláno: 21. 5. 2007, 10:03:43
len jednoduchu vec, aby ked kliknem na tlacitko napr kosicky zmenilo hodnotu premennej. Premenna sa vola idKraj /nemam urcene nazvy instancie teraz uz MC nie Buttonu/. Po kliknuti sa prejde na 3 snimok ktory po ziskani tej premennej idKraj vygeneruje z xml dalsie data. Ja len neviem predavat premenne a este neviem vytvarat nove tlacitka ktore by sluzili ako navigacia ak sa da bol by som rad keby sme si napisali na ICQ. Moje icq je 291-764-943
|
||
dredie Profil |
#12 · Zasláno: 21. 5. 2007, 10:15:11
Jeste otazka - co ti prechazi na snimek 3? A proc? Jinak ICQ ze soukromych duvodu neposkytuju
|
||
matko Profil * |
#13 · Zasláno: 21. 5. 2007, 10:22:00
jj jasne ja len ze by som aj screen poslal, ale ok. No to je jedno na aky snimok mozem to dat aj na 55 to je jedno. Fakt je ten ze tam si priradim tu premennu do dalsej sktorou operuje ten script ktory je tam. Aby si uzivatel vybral ten kraj ktory potrebuje potrebujem tu premennu menit. S tym prvym zapisom mi to slo len raz a potom sa premenna nedala meni.
|
||
dredie Profil |
#14 · Zasláno: 21. 5. 2007, 10:27:51
matko - no porad to asi uplne nechapu, ale snad to bude takhle:
1. vytvor si buttony jako samostatne MC, kolik jich budes potrebovat 2. dej jim instance name (pouziju myBtn1, myBtn2.... myBtnN) 3. vytvor si MC s tim, co se ma presouvat (nevim sice co to je, ale tipuju to na nejake obrazky) a dej mu instance name (pouziju myMc) 4. na 1. frame timeline dej kod: var krajID:Number; myBtn1.onRelease = function():Void { this.parent.myMc.gotoAndStop(1); krajID=1; } myBtn2.onRelease = function():Void { this.parent.myMc.gotoAndStop(2); krajID=2; } atp. |
||
matko Profil * |
#15 · Zasláno: 21. 5. 2007, 11:48:04
nie, mne to nejde a skusal som vsetko. Uz na to nemam nervy.Tak zlozity programovaci jazyk som este nevidel ani nie zlozity ale neprehladny.
Nakoniec, vzhladom nato ze som nevedel alebo nebol schopny z tejto fce vybrat tu premennu tak by sa to dalo asi takto ale problem je teraz v tom ze kolko krat kliknem na napr.myBtn1 tak tolko krat sa vysledok zobrazi v dynamickom poli myBtn1.onRelease = function():Void { var id = 1; xml(id); } |
||
dredie Profil |
#16 · Zasláno: 21. 5. 2007, 12:26:09
matko on zase tak neprehledny neni, akorat zezacatku clovek nevi co a jak. Zkus si jednoduchou funkci:
var myVar:Number; function generic():Void { trace(myVar); myVar=1; trace(myVar) } generic(); melo by ti to vyhodit: undefined 1 |
||
matko Profil * |
#17 · Zasláno: 21. 5. 2007, 13:05:28
no jj, to by slo ale neviem ako zapravovat toto do toho
myBtn1.onRelease = function():Void { var id = 1; } |
||
dredie Profil |
#18 · Zasláno: 21. 5. 2007, 13:23:32
matko: ale to je uplne stejne.
Udelej si jeden MC, dej mu instance name myBtn1 a na prvni frame hlavni casove osy napis var id:Number; this.myBtn1.onRelease = function():Void { trace(id) id = 1; trace(id) } opet ti to vyhodi: undefined 1 Aboslutne stejnym principem pak udelas vsechny ostatni butony. Btw.: to this oznacuje casovou osu, na ktere se skript nachazi, tudiz hlavni casovou osu. myBtn1 se nahazi na ni, tudiz this.myBtn1..... |
||
matko Profil * |
#19 · Zasláno: 21. 5. 2007, 13:39:27
ano to my vypise v outpute ale ako ju budem mat niekde mam dalej niekam do dalsej premennej strcit. toto co si napisal uz mam a ide to. To mi fuckovalo aj predtym. No a skus ten trace pouzit mimo fce tak aby ta hodnota bola ta co zadas tou funkciou
|
||
dredie Profil |
#20 · Zasláno: 21. 5. 2007, 13:45:45
matko - ta hodnota zustane takova dokud ji neprepises jinou hodnotou. Schvalne zkus tohle:
udelej si dva buttony a dej tam skript: var id:Number=0; this.myBtn1.onRelease = function():Void { id+=1; } this.myBtn2.onRelease = function():Void { trace(id); } prvni button pricte k hodnote id 1, druhy ti vypise hodnotu id. Az to poklepes tak zjistis, ze hodnota promenne id se nemeni, pokud neklepnes na prvni button a tim nezmenis jeji hosnotu. |
||
matko Profil * |
#21 · Zasláno: 21. 5. 2007, 14:02:18
ano to je jasne ale niekedy potrebujes tu hodnotu premennej aj inde, nielen v tej fce a ja ju potrebujem inde nie v tej premennej. A moj cely problem je ze ja k nej neviem inde pritupovat len v tej funkcii.V inom jazyku by som to riesil returnom ale tu mi to nejako nefuckuje, alebo by som dal ako nejaku globalnu premennu aby som mohol aj mimo fce pristupovat. ja som s toho ***** este ze mam na to cas inak by ma asi z prace za ten vykon vyhodili
|
||
dredie Profil |
#22 · Zasláno: 21. 5. 2007, 14:07:58
Porad nechapu jak to myslis - co je podle tebe pristupovani k promenne mimo funkci? V tom prikladu nahore mas dve funkce ktere operuji s jednou promennou, ktera je mimo ne. Nemyslis tak treba nahodou mimo flash?
Jinak globalni promenne ve flashi taky existuji, ale ja jsem ji nikdy nepotreboval. myslim ze se deklaruji pomoci global |
||
matko Profil * |
#23 · Zasláno: 21. 5. 2007, 14:16:19
teraz ja ti dam trochu rychlokurzu napr programovacieho jazyka php
1./ priklad - toto robis ty, ale tz to ani nevypises ale len das do nejakeho debugera, ale vzpis je jednoduchy a to zvladam. function moja_fce(){ $id = "1"; echo $id; } 2./ priklad - toto potrebujem ja a to bud takto function moja_fce(){ $id = "1"; return($id); } $vysledok = moja_fce(); echo $vysledok; // vypise 1 3./ priklad - alebo takto function moja_fce(){ $_REQUEST['id'] = "1"; } $vysledok = moja_fce(); echo $_REQUEST['id']; // vypise 1 |
||
matko Profil * |
#24 · Zasláno: 21. 5. 2007, 14:19:16
pri druhom a tretom priklade je premenna deklarovana vo fce pouzita aj vonku, myslim mimo fce a toto potrebujem.Tj. pouzit premennu deklarovanu vo fce nikde mimo fce.Skusal som _root, _global a tiez to nejako nefunguje
|
||
dredie Profil |
#25 · Zasláno: 21. 5. 2007, 14:24:54
pokud to dobre chapu, tak tahle funkce:
function moja_fce(){ $id = "1"; return($id); } $vysledok = moja_fce(); echo $vysledok; se da v AS napasta jako: function moja_fce():Number { var id = 1; retur id; } var vysledek:Number = moja_fce(); trace(vysledek); //vypise 1 |
||
matko Profil * |
#26 · Zasláno: 21. 5. 2007, 14:26:52
no a teraz toto?
var id:Number=0; this.myBtn1.onRelease = function():Void { id=1; } |
||
matko Profil * |
#27 · Zasláno: 21. 5. 2007, 15:43:05
no ako? da sa to?
|
||
XXX Profil |
#28 · Zasláno: 21. 5. 2007, 17:02:58
jsem nevedel, ze ma dredie takovou trpelivost :-D
matko Nechapu, co nechapes.Pokud si promenou id deklarujes v prvnim snimku hlavni casove osy, tak k ni muzes pristupovat kdekoliv jinde v celem tvem FLA souboru pouhym zadanim jejiho jmena. Pokud mas na prvnim snimku hlavni casove osy skript:
tak kdyz se ted presunes na libovolny snimek, tak muzes tady vypsat hodnotu promenne id pouhym
nebo ji tady muzes zmenit na libovolnou hodnotu:
atd. |
||
dredie Profil |
#29 · Zasláno: 21. 5. 2007, 21:04:45
XXX - no taky je to fuska :D
|
||
XXX Profil |
#30 · Zasláno: 21. 5. 2007, 21:28:57
dredie
To vidim... obdivuju, zes vydrzel tak dlouho ;) Ja uz bych asi davno doporucil knizku a ucit se zaklady :-D |
||
Téma pokračuje na další straně.
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0