ActionScript 2 - zmenaMovieClipu
ActionScript 2 - zmenaMovieClipu
Zdravím všetkých,
narazil som na problém. Pomocou funkcie createEmptyMovieClip som si vytvoril spojnice bedzi viacerými bodmi (každá takáto spojnice [movieClip] má svoje meno a rozdielnu hlbku). Lenže teraz prichádza problém. Chcem stýmito bodmi pohybovať ľubovoľne podľa svojho uváženia, ale tým spôsobom, že medzi bodmi existuje viacero spojníc. Narazil som na niekoľko príkladov kde je niečo podobné riešené, ale je to vždy urobené cez opakované vykresľovanie v jednej hlbke, zatiaľ, čo ja potrebujem pracovať vo viacerých hĺbkach z dôvodu, že neskôr chcem tieto spojnice aj odstraňovať.
Ak sa niekto stretol s podobným problémom, alebo by ma vedel správne nasmerovať budem veľmi rád. Ďakujem
narazil som na problém. Pomocou funkcie createEmptyMovieClip som si vytvoril spojnice bedzi viacerými bodmi (každá takáto spojnice [movieClip] má svoje meno a rozdielnu hlbku). Lenže teraz prichádza problém. Chcem stýmito bodmi pohybovať ľubovoľne podľa svojho uváženia, ale tým spôsobom, že medzi bodmi existuje viacero spojníc. Narazil som na niekoľko príkladov kde je niečo podobné riešené, ale je to vždy urobené cez opakované vykresľovanie v jednej hlbke, zatiaľ, čo ja potrebujem pracovať vo viacerých hĺbkach z dôvodu, že neskôr chcem tieto spojnice aj odstraňovať.
Ak sa niekto stretol s podobným problémom, alebo by ma vedel správne nasmerovať budem veľmi rád. Ďakujem
-
weroro
Flash coder
- Príspevky: 3206
- Registrovaný: 14 feb 2009, 22:34
- Bydlisko: Bratislava
- Kontaktovať používateľa:
Re: ActionScript 2 - zmenaMovieClipu
Stále pracuješ na tej app kreslenia elektrických obvodov? Si dávaš na čas 
Neviem ako sa toto rieši, ale určite by som skúsil niečo takéto:
Pre každý pár úchytných bodov a spojovacej čiary by som vytvoril samostatný kontajner (prázdny movie clip), do ktorého by som vykreslil tieto objekty. Potom môžeš bez problému zacieliť na potrebnú inštanciu (presúvanie, odstraňovanie, modifikácia)
Neviem ako sa toto rieši, ale určite by som skúsil niečo takéto:
Pre každý pár úchytných bodov a spojovacej čiary by som vytvoril samostatný kontajner (prázdny movie clip), do ktorého by som vykreslil tieto objekty. Potom môžeš bez problému zacieliť na potrebnú inštanciu (presúvanie, odstraňovanie, modifikácia)
Re: ActionScript 2 - zmenaMovieClipu
Ono podmienky sa bohužiaľ stále menia, vzhľadom na moje schopnosti a na predstavy ako to má vyzerať. Je niečo už hotové (2 veci sú viac menej hotové tam už len pár úprav treba), ale zas mi pribudol nový projekt a s niečím takýmto som sa ešte nestretol. Prázdny kontajner ? Mohol by si mi sem hodiť kúsok scriptu, ak by si si našiel čas ? Dačo čoho by sa dalo chytiť, pochopiť problematiku. S kontajnermi som ešte akosi ešte nepracoval. Momentálne to mám všetko hodené do jednej funkcie na vykreslovanie.
Našiel som príklad s takýmto scriptom ale akosi sa z toho neviem vymotať. Dám to do prílohy. Nerobí to presne to, čo potrebujem, ale je to tam riešné iným spôsobom ako novým vykresľovaním a zároveň je tam aj ukladanie vo viacerých vrstvách, ale ak si myslíš, že to je zlé riešenie vzhľadom na to, čo potrebujem rád sa nechám poučiť. 
Kód: Vybrať všetko
function vykresli(){
if(prepare.length==4){ //hodnoty si ukladám do pola aby som vedel, že bolo kliknuté na dva movieClipy za
spoj=meno[0]+"-"+meno[1]; //tu si len ukladám názvy, som dúfal že to pojde pouzit neskor pri mazani
zmenFarbu(); //ono toto je len dalsia v tomto pripade nepodstatna funkcia
obj[spoj]=createEmptyMovieClip("ciara"+i, i); //samotne vytváranie movieClipu (spojenia)
with(obj[spoj]){ //ono pouzil som with pre lahsiu manipuláciu
lineStyle(2,farba); //farbu tiez ziskam od uzivatela takze toto je len premena do ktorej sa to uklada
moveTo(prepare[0],prepare[1]);
lineTo(prepare[2],prepare[3]);
}
vymaz(); //tu mazem pole prepare do ktoreho si ukladám suradnice
mcvisible(); //nastavenie viditelnosti, tiež vec súvisiaca s niečím iným
}
}- Prílohy
-
- dragline.rar
- (4.84 KiB) 16 stiahnutí
-
weroro
Flash coder
- Príspevky: 3206
- Registrovaný: 14 feb 2009, 22:34
- Bydlisko: Bratislava
- Kontaktovať používateľa:
Re: ActionScript 2 - zmenaMovieClipu
No LOL veď to je celkom prča
A ty potrebuješ čo? potrebuješ mať možnosť jedným bodom ovládať dve vlákna ale zároveň chceš mať možnosť tento bod v prípade potreby odstrániť? to znamená: nakreslím čiaru A ktorá spája úchytné body A1 - A2. Tak ako je to v tomto príspevku http://www.hojko.com/post1471314.html#p1471314 potom chceš mať možnosť nakresliť ďalšiu čiaru B s bodmi B1 - B2 a tak isto chceš aby keď spojíš body A1 a B2 aby sa chovali ako jeden bod a z toho vyplýva, že ak budeš hýbať bodom A1B2 budeš automaticky ovplyvňovať aj obe čiary A-B. Ďalej v prípade potreby chceš mať možnosť, odstrániť napr. čiaru A, s ktorou odstrániš aj body A1 - A2. to urobíš, tak ako som písal v prvom príspevku, že všetky tieto 3 objekty (dva úchytné body a čiaru) si zakaždým umiestniš do samostatného movieclipu (kontajneru) a v prípade potreby odstránenia použiješ funkciu unloadMovie s názvom tohto kontajneru a automaticky sa odstránia aj jeho potomkovia (movieclipy umiestnene v ňom). Funkciou hittest, ktorá nie je obmedzovaná vrstvou, viditeľnosťou a umiestnením objektu môžeš testovať spojenie bodov.
Momentálne sa mi nechce nič programovať takže ukážku ti nedám. To ale neznamená, že v prípade potreby ti sem niečo nehodím
A ty potrebuješ čo? potrebuješ mať možnosť jedným bodom ovládať dve vlákna ale zároveň chceš mať možnosť tento bod v prípade potreby odstrániť? to znamená: nakreslím čiaru A ktorá spája úchytné body A1 - A2. Tak ako je to v tomto príspevku http://www.hojko.com/post1471314.html#p1471314 potom chceš mať možnosť nakresliť ďalšiu čiaru B s bodmi B1 - B2 a tak isto chceš aby keď spojíš body A1 a B2 aby sa chovali ako jeden bod a z toho vyplýva, že ak budeš hýbať bodom A1B2 budeš automaticky ovplyvňovať aj obe čiary A-B. Ďalej v prípade potreby chceš mať možnosť, odstrániť napr. čiaru A, s ktorou odstrániš aj body A1 - A2. to urobíš, tak ako som písal v prvom príspevku, že všetky tieto 3 objekty (dva úchytné body a čiaru) si zakaždým umiestniš do samostatného movieclipu (kontajneru) a v prípade potreby odstránenia použiješ funkciu unloadMovie s názvom tohto kontajneru a automaticky sa odstránia aj jeho potomkovia (movieclipy umiestnene v ňom). Funkciou hittest, ktorá nie je obmedzovaná vrstvou, viditeľnosťou a umiestnením objektu môžeš testovať spojenie bodov.
Momentálne sa mi nechce nič programovať takže ukážku ti nedám. To ale neznamená, že v prípade potreby ti sem niečo nehodím
Re: ActionScript 2 - zmenaMovieClipu
Weroro výborne si vystihol, čo potrebuje, až nato, že ja budem mazať len movieClipy, ktoré sú vlákna. Zo začiatku budem mať všetky komponenty, ktoré chcem spojiť na ploche a spájať ich. Neskôr to ak vydá čas modifikujem a budem dohadzovať jednotlivé komponenty na plochu pomcou ComboBoxu.
Ja som to robil tak, že som si neumiestňoval vytvorené spojenia do movieClipu ale do Objektu. Tak to skúsim prepracovať. Len mazanie týmto spôsobom sa možno ukáže nevhodné. PS: Umiestnením do nového movieClipu nie je troška zbytočné, keď vlastne ja chcem mazať vlákna a jednotlivé body oddelene ?
Ja som to robil tak, že som si neumiestňoval vytvorené spojenia do movieClipu ale do Objektu. Tak to skúsim prepracovať. Len mazanie týmto spôsobom sa možno ukáže nevhodné. PS: Umiestnením do nového movieClipu nie je troška zbytočné, keď vlastne ja chcem mazať vlákna a jednotlivé body oddelene ?
-
weroro
Flash coder
- Príspevky: 3206
- Registrovaný: 14 feb 2009, 22:34
- Bydlisko: Bratislava
- Kontaktovať používateľa:
Re: ActionScript 2 - zmenaMovieClipu
Tu som ti teraz z dlhej chvíle napísal AS, kde si pozri ako som to myslel s tými kontajnermi 
Kód: Vybrať všetko
_root.createEmptyMovieClip("tlacitkoSpat", this.getNextHighestDepth());
with (tlacitkoSpat) {
beginFill(0xcccccc);
moveTo(0, 0);
lineTo(60, 0);
lineTo(60, 30);
lineTo(0, 30);
lineTo(0, 0);
endFill();
_x = 500;
_y = 10;
this.createTextField("nazov", 10, 500, 15, 100, 20);
this.nazov.selectable = false;
this.nazov.text = "ZMAZAŤ";
}
var PocetKontajnerov:Number = 1;
var prvaXpoz:Number = 0;
var prvaYpoz:Number = 0;
var druhaXpoz:Number = 0;
var druhaYpoz:Number = 0;
function novyKontajner():Void {
_root.createEmptyMovieClip("vykreslenie"+_root.PocetKontajnerov, this.getNextHighestDepth());
}
_root.createEmptyMovieClip("ukazka", this.getNextHighestDepth());
var myska:Object = new Object();
myska.onMouseDown = function():Void {
if (!_root.tlacitkoSpat.hitTest(_xmouse, _ymouse, true)) {
_root.kreslenie = !_root.kreslenie;
_root.mysHore = false;
if (!_root.kreslenie) {
if (_root.druhaXpoz != _root.druhaYpoz) {
_root.novyKontajner();
_root["vykreslenie"+_root.PocetKontajnerov].lineStyle(2, 0xFF0000, 100);
_root["vykreslenie"+_root.PocetKontajnerov].moveTo(_root.prvaXpoz, _root.prvaYpoz);
_root["vykreslenie"+_root.PocetKontajnerov].lineTo(_root.druhaXpoz, _root.druhaYpoz);
_root.PocetKontajnerov++;
}
}
}
};
myska.onMouseMove = function():Void {
if (!_root.tlacitkoSpat.hitTest(_xmouse, _ymouse, true)) {
if (_root.kreslenie && _root.mysHore) {
_root.ukazka.clear();
_root.ukazka.lineStyle(2, 0x0000FF, 100);
_root.ukazka.moveTo(_root.prvaXpoz, _root.prvaYpoz);
_root.ukazka.lineTo(_xmouse, _ymouse);
_root.druhaXpoz = _xmouse;
_root.druhaYpoz = _ymouse;
}
updateAfterEvent();
}
};
myska.onMouseUp = function():Void {
if (!_root.tlacitkoSpat.hitTest(_xmouse, _ymouse, true)) {
_root.mysHore = true;
_root.prvaXpoz = _xmouse;
_root.prvaYpoz = _ymouse;
}
};
Mouse.addListener(myska);
_root.tlacitkoSpat.onRelease = function():Void {
_root.ukazka.clear();
if (_root.PocetKontajnerov>0) {
_root.PocetKontajnerov--;
unloadMovie(_root["vykreslenie"+_root.PocetKontajnerov]);
}
};
- Prílohy
-
- ukazka.swf
- (817 Bajtov) 124 stiahnutí
Re: ActionScript 2 - zmenaMovieClipu
No my sme sa nepochopili moc, ale určite tam najdem niečo, čo sa bude dať použiť. Práve som ešte len začal. Ešte tam je veľa vecí, čo chcem doladiť. Zatiaľ tam je len spájanie s výberom. Musím tam dorobiť mazanie + pohyb s tými jednotlivými komponentami. Dnes mam čas tak sa idem do toho pustiť. Tiež tam tých čiar musí byť viac, ja by som potreboval mazanie, kde sa dajú odstrániť ľubovoľné spojenia(vlakna). Spätne som si vymyslel taký primitívny script predtým aj ja. Síce na ten tvoj nemá ale fungoval.
- Prílohy
-
- VonNeumanSchema.swf
- (58.95 KiB) 112 stiahnutí
-
weroro
Flash coder
- Príspevky: 3206
- Registrovaný: 14 feb 2009, 22:34
- Bydlisko: Bratislava
- Kontaktovať používateľa:
Re: ActionScript 2 - zmenaMovieClipu
Počkať. Možno mi práve doplo. Ty si na scénu naukladáš súčiastky a potom ich len pospájaš čiaramy? V prípade potreby (chybného spojenia) chceš konkrétnu čiaru zmazať? Tak isto aj odstrániť súčiasku (v prípade potreby)? Ak áno, tak to je celkom easy. Keď prídem domov skôr (ale ako pozerám na ten papier s popisom aplikácie ktorú mám urobiť tak to bude asi na dlho
), tak to urobím.
Ešte by si mi mohol ozrejmiť tie farby čiar ?
Ešte by si mi mohol ozrejmiť tie farby čiar ?
Re: ActionScript 2 - zmenaMovieClipu
Ono nemusíš sa ponáhľať ja na tom stále makám ...weroro napísal:Počkať. Možno mi práve doplo. Ty si na scénu naukladáš súčiastky a potom ich len pospájaš čiaramy? V prípade potreby (chybného spojenia) chceš konkrétnu čiaru zmazať? Tak isto aj odstrániť súčiasku (v prípade potreby)? Ak áno, tak to je celkom easy. Keď prídem domov skôr (ale ako pozerám na ten papier s popisom aplikácie ktorú mám urobiť tak to bude asi na dlho), tak to urobím.
Ešte by si mi mohol ozrejmiť tie farby čiar ?