PDA

Volledige versie bekijken : 2 objecten van plaats wisselen dmv as


maikel
%Europe/Berlin %639 %2005, 16:21
Hey,

ik ben op zoek naar een script om 2 objecten van plaats te laten verwisselen door middel van actionscript. (ze moeten dus elkaars plaats innemen).

korte uitleg van wat ik eigelijk zoek.

stel dat ik 5 objecten boven elkaar heb staan,
1
2
3
4
5

dat als er een van die geklikt word naar positie 3 te verplaatsen en 3 naar de positie van geklikte object te verplaatsen.

(stel 5 wordt geklikt)

1
2
5
4
3

(zou dit de uitkomst zijn)


waarbij 3 altijd de plek is waar andere objecten naar verplaatst worden en het object wat de postitie drie in genomen heeft opnieuw verwisseld word met geklikte object.

(stel hierna word 1 geklikt)

5
2
1
4
3

(zou dit de uitkomst zijn)

Misschien een beetje lastige uitleg maar zal even voorbeeld nog proberen te zoeken,
hoop echt dat iemand me hiermee vooruit kan helpen.
Een simpele aanzet om 2 objecten van plek te doen verwisselen is al genoeg,
ik zou hier heel erg mee geholpen zijn.

bvd.

Maikel

SaphuA
%Europe/Berlin %666 %2005, 16:59
var s = null;
var tW = 40;
var tH = 40;
for (var i = 1; i<=5; i++) {
//--Het maken van de blokjes
var t = this.createEmptyMovieClip("t"+i, i);
t.beginFill("0xDDDDDD", 100);
t.lineStyle(1, "0xAAAAAA", 100);
t.lineTo(tW, 0);
t.lineTo(tW, tH);
t.lineTo(0, tH);
t.lineTo(0, 0);
t.endFill();
//-
t.createTextField("t", 1, 0, 0, tW, tH);
t.t.selectable = false;
t.t.text = i;
//-
t._y = (i-1)*tH;
//-
t.onRelease = function() {
if (_root.s == this._name) {
//--Deselect
this._alpha = 100;
_root.s = null;
} else if (_root.s == null) {
//--Select
this._alpha = 40;
_root.s = this._name;
} else {
//--Swap
var t = _root[s]._y;
_root[s]._y = this._y;
_root[s]._alpha = 100;
_root.s = null;
//-
this._y = t;
this._alpha = 100;
}
};
}

maikel
%Europe/Berlin %559 %2005, 14:25
hey saphua dankje voor je reactie,
ok ik heb je script eens bekeken en heb het kunnen gebruiken voor iets anders dan wat eigelijk de bedoeling was :)

maar ik heb nu dus nogsteeds hetzelfde probleem,
het idee wat ik had heeft iets weg van het (linker) menu van deze site
www.base-ment.com/flash.html (die manier van wisselen).

Heeft iemand enig id hoe dit in zijn werk gaat of iemand met een basis fla / script.

het hoeven maar 2 items te zijn waarmee het werkt.
(die van plek wisselen, ze moeten elkaars positie innemen dus)
het principe hoeft me maar duidelijk te zijn, (maar dan wel in as geen tweem :) )

hoop echt dat iemand me hiermee kan helpen

vele malen dank alvast!

maikel
%Europe/Berlin %677 %2005, 17:15
Mensen Mensen,

niemand die een id heeft

hoop snel iets te horen......

Alvast bedankt !!!

maikel
%Europe/Berlin %618 %2005, 15:50
Hey,

laatste keer nog

ikheb het idee dat ik hier nogal lam overkom (zo van doe dit even voor mij, dit is eigenlijk niet het geval)

ik heb al vanalles geprobeerd, heb zelfs iemand al geholpen met gevonden script. :)
maar krijg het hier niet op toegepast,

zou iemand me kunnen vertellen of ik iets onmogelijks wil of te moeilijk denk,

het scipt dat ik gemaakt heb en zo ook werkt op eerder gebruikte buttons was deze:

//script gebruikt voor te bewegen blokje
onClipEvent (enterFrame) {
movey = (endPosy-this._y)/5;
this._y += movey;
movex = (endPosx-this._x)/5;
this._x += movex;
}



//script gebruikt voor button
on (release) {
_root.blok1.endPosy = 210;
_root.blok1.endPosx = 300;
}


maar ik krijg hem maar niet toegepast op vorige voorbeeld wat ik gekregen had,
en weet ook niet of dit eigelijk wel gaat.

iemand die me hiermee zou willen helpen, hoop snel te horen

groet MAikel

SaphuA
%Europe/Berlin %723 %2005, 18:21
Het script dat ik je gegeven heb is al 90%van wat je nodig hebt...

Misschien is het verstandig als je eerst wat meer AS leert voordat je verder gaat. Het heeft geen nut als je code blijft krijgen, toch?

Succes..

Even om je op weg te helpen:
Bij de onRelease wordt alles gedaan om dingen te verwisselen, dus inplaats van het in 1x te laten gebeuren, moet je het vertragen. Dit doe je dmv een onEnterFrame aan te maken.

maikel
%Europe/Berlin %588 %2005, 15:07
hey saphua thx nog voor je laatste post,

maar ben er nu al tijdje mee bezig en kom er echt niet uit,
wil graag zelf uitzoeken hoe het moet,
aangezien ik er anders niks van lees,
misschien is het makkelijk om het met statische buttons te doen om het te snappen ik weer het ook niet,

misschien heeft iemand een verwijzing naar een tutorial die me zou kunnen helpen,
of de oplossing met uitleg waar ik iets aan zou kunnen hebben,
kweet het ook niet meer, maar wil het wel gedaan krijgen

hoop dat iemand hulp kan bieden

THX ALVAST

groet maikel

SaphuA
%Europe/Berlin %612 %2005, 15:42
Dan wordt het iets in deze richting:
var txt = ["Home", "Pizza", "Pannenkoek", "Truffels"];
var top = null;
var tileS = 80;
var tileW = 80;
var tileH = 20;
var steps = 12;
for (var i = 1; i<=txt.length; i++) {
//--Het maken van de blokjes
var t = this.createEmptyMovieClip("t"+i, i);
t.beginFill("0xDDDDDD", 100);
t.lineStyle(1, "0xAAAAAA", 100);
t.lineTo(tileW, 0);
t.lineTo(tileW, tileH);
t.lineTo(0, tileH);
t.lineTo(0, 0);
t.endFill();
//-
t.createTextField("t", 1, 0, 0, tileW, tileH);
t.t.selectable = false;
t.t.text = txt[i-1];
//-
t._y = (i-1)*tileH;
//--zet de onderste blokjes lager
if (i>1) {
t._y += tileS;
} else {
//--Het bovenste blokje
top = t;
}
//--Swap
t.onRelease = function() {
//--Als ze niet al aan het swappen zijn
if (!top.onEnterFrame && top._name != this._name) {
//--Geef ze de hoogste depths
top.swapDepths(txt.length+1);
this.swapDepths(txt.length);
//--Stapgrootte
var step = (top._y-this._y)/steps;
var c = 0;
var temp = top;
top = this;
//--Verplaatsen
this.onEnterFrame = function() {
top._y += step;
temp._y -= step;
if (++c == steps) {
delete this.onEnterFrame;
}
};
}
};
}
Ik kan je verder neit veel helpen, omdat je gewoon AS moet kunnen om dit te begrijpen. Dus ik raad je alsnog aan om AS te gaan leren met tutorials ed.

maikel
%Europe/Berlin %373 %2005, 09:57
SUPER!

DANKJE!

dit is wat ik bedoel !

maarjah daar snap ik het natuurlijk nog niet helemaal mee :(

heb jij enig id waar ik ergens zou kunnen beginnen,
de basis heb ik wel maar wil uit gaan breiden,
wat is slim om mee te beginnen,

weet er iemand plek waar je beginners en verder geavanceerd op rij hebt staan,
of is een boek kopen slimmer.

(of kan ik hiervoor beter op forum zoeken)

als ik lastig ben roep maar. :)

maar wil leren en heb niet echt een id waar mee te beginnen
(links, verwijzingen naar topics diek gemist heb alles is welkom)

hoop iets te horen

THX alvast

groet maikel

//-edit

ik heb deze gevonden is dit een goed begin?
http://www.bourgondien.nl/webklus/cursus/lessen/les.php?viewles=1

-edit//