Autor | Zpráva | ||
---|---|---|---|
Vasek Dvorak Profil |
#1 · Zasláno: 1. 2. 2007, 15:25:10 · Upravil/a: Vasek Dvorak
Uz v sekci jak co udelat, radeji davam i sem:
Prosim o radu, delam mensi testik ve flash mx, soucasti je i drag and drop (tahni a na spravnem miste pust), pouzil jsem quiz template. Skladam nejaky stroj do jeho cernobileho obrysu - a ted problemy: 1) Potrebuji urcit poradi jednotlivych pretahovanych veci (movie clipu) - tedy napr. - cislo jedna bude vzdy navrchu, 2 bude pod 1 ale nad 3,... Cetl jsem ruzne navody, ale vse se tykalo samotneho kompletniho vytvoreni testu - a pro me ucely by bohate stacilo (by bylo jednodussi) modifikovat tu dodavanou sablonu. Lze-li ji tedy nejak upravit 2) Jak zajistit, aby na jeden Target sel dat jen jeden Drag? Ted to (a i na nejakem oficialnejsim naucnem souboru) funguje tak, ze na jedno misto urceni muzu navesit vsechny popotahovatelne casti:( 3) Souvisi se 2) - Jak zajistit, abych po ulozeni Dragu na Target mohl s dragem jeste znovu hybat - zatim je to tak, ze at to polozim dobre nebo spatne, pusteny drag se zablokuje a vse se da resit jen zmacknutim reset button - coz ovsem zrezetuje i ostatni dragy, treba i dobre ulozene - a to je pekna pakarna! Pokud je nejlepší řešení se na ten vzor quizu vykvajznout a udělat to jinak - i tak prosím o napovězení směru cesty. Knihu na MX mám, bohužel takovéto věci se v ní vůbec (nebo jen pro mě nezřetelně?) neřeší. |
||
dredie Profil * |
#2 · Zasláno: 2. 2. 2007, 19:28:18
Osobne bych neresil vubec drag and drop ale pouzil onMouseMove a this._x a this._y vlastnosti klipu.
1] to se da vyresit ruznymi levely klipu. 2] muzes to udelat nejak takto: this.myMcl.onPress = function () { this.onMouseMove = function() { this._x = this._parent._xmouse; this._y = this._parent._ymouse; } } this.myMcl.onRelease = function () { delete this.onMouseMove; } - je potreba akorat zmenit registracni bod, aby nebyl vlevo nahore (v symbolu vycentrujes grafiku spolu se stagi), jinak to nefunguje. Skript je samozrejme ilustracni a da se udelat lepe v zavislosti na konkretnim vyuziti, ale tohle by se dalo pochopit jako lehka gudieline. To ktery klip muzes dat na co se da vyresit jednoduchou podminkou spolu s promennymi. Promennou deklaruj na zacatku skriptu: var mclPressed:String; a do funkce onPress pak vlozis skript: mclPressed = "myMcl"; Potom pomoci funkce hitTest (kterou vlozis do onRelease funcke) zajistis, aby se v pripade, ze polozis klip na nektery z cilu, zavolala funcke ktera zkotnroluje hodnotu promenne mclPressed (napr. pomoci if/else), pokud bude souhlasit, klip pak muzes zase pomoci skriptu ulozit na toto misto (nebo jednoduse smazes onMouseMove), jinak se s nim bude dit neco jineho. Nicmene problem je, co ten klip udela pokud ho polozis nekam kde nema byt - nejlogictejsi mi prijde to, ze se klip vrati na sve puvodni misto - v tom pripade musis pouzit trochu slozitejsi skripty - napr. pomoci onEnterFrame a zmenami hodnot this._x a this._y docilis pohybu na misto na ktere chces (zalezi na puvodnich ._x a ._y vlatnostech daneho klipu). 3] to zajistuje logika skriptu v kroku 2. Znova rikam ze se jedna o ilustraci a uricte narazis na nejake prekazky, ale myslim ze logika vyse popsaneho je vice mene spravna. Nicmene predpokladam, ze se tu najde nekdo, kdo by udelal rozhodne lepsi reseni :) D. |
||
Časová prodleva: 17 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0