Autor Zpráva
Vasek Dvorak
Profil
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 *
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.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0