PDA

Volledige versie bekijken : MC in MC


Montecarlo
%Europe/Berlin %392 %2005, 10:25
Hallo,

Okay, mijn vorige vraagstelling werd niet helemaal begrepen, daarom probeer ik het nu opnieuw. Dit keer heb ik ook een voorbeeld .fla file erbij gedaan. Ik heb dus niet zo heel veel verstand (zegmaar geen, haha) van AS, dus hoop dat jullie me kunnen helpen.

Uitleg van de werking:
op de stage staan 2 MC's ("MC1" en "MC2"). Beiden hebben dezelfde werking.
Als de muis over "MC1" heenbeweegt (rollover) dan speelt ie af tot aan frame 10 (inzoomen). Nu is het de bedoeling als de muis eraf gehaalt wordt dat ie achteruit afspeelt van frame 10 naar frame 1 (uitzooomen). Nu springt ie gelijk terug naar frame 1. Daarnaast als je tijdens het afspelen de muis er al afhaalt speelt ie af tot frame 10 en blijft daarop staan totdat de muis weer over de MC heen bewogen wordt. Dat gaat dus ook niet goed. Ik wil dat als halverwege het afspelen (bijv bij frame 6) de muis van de MC afgehaald wordt dat ie dan achteruit afspeelt.

Als de muis nog op "MC1" staat dan speelt ie af tot frame 10. In frame 10 wil ik een nieuwe MC ("MC1a") laten afspelen. Daarbij moet exact hetzelfde gebeuren als bij "MC1", dus inzoomen bij "RollOver" en uitzoomen bij "RollOut" Alleen op een of andere manier reageert "MC1a" helemaal niet op AS.

Dan tenslotte nog het probleem dat "MC1" en "MC2" over elkaar heen vallen bij het afspelen. Ik wil graag dat de MC die afgespeeld wordt, dat die bovenop komt te liggen. Volgens mij iets met SwapDepth, kan dat? Ik heb daar iets over gelezen. Wie wil (kan) mij helpen???


groet,
Flash newbie
Montecarlo

mateo)
%Europe/Berlin %601 %2005, 15:25
ik begrijp je probleem niet. dan zet je toch gewoon je animatie op frame 10 van je zoom clip?

Montecarlo
%Europe/Berlin %572 %2005, 14:43
ik begrijp je probleem niet. dan zet je toch gewoon je animatie op frame 10 van je zoom clip?

Hi Mateo,

ik heb het bericht aangepast. Misschien nu duidelijker. :)

rredspike
%Europe/Berlin %589 %2005, 15:08
Misschien bedoeltie

1e frame Stop();
2e frame heet "begin" ofzo gaattie afspelen als je er met de muis overheen gaat
en dan bij frame 9 weer stop();
frame 10

(frame2)
knopje.onRollOver = function () {
GotoAndPlay ("begin");
}
(frame10)
knopje.onRollOut = function () {
GotoAndPlay ("terug");

of je maakt een aparte layer met alle AS

OFZOIETS :P

Montecarlo
%Europe/Berlin %641 %2005, 16:24
hey bedankt voor de reactie. Dat gaat niet, want de MC is een motiontween.

Flasher
%Europe/Berlin %698 %2005, 17:46
var mcArr:Array = new Array(MC1, MC2);
for(i=0;i<mcArr.length;i++) {
var mc:MovieClip = mcArr[i];
mc.stop();
mc.onRollOver = function() {
this.swapDepths(this.getDepth()+2);
this.onEnterFrame = next;
}
mc.onRollOut = mc.onDragOut = function() {
this.swapDepths(this.getDepth()-2);
this.onEnterFrame = prev;
}
}
function prev() {
if(this._currentframe >1) this.prevFrame();
else delete this.onEnterFrame;
}
function next() {
if(this._currentframe < this._totalframes) this.nextFrame();
else delete this.onEnterFrame;
}
MC1.swapDepths(0);
MC2.swapDepths(1);

Uitleg:

Eerst worden de namen van de MCs in een array gezet, zodat ze met een For-loop uitgelezen kunnen worden. In die loop wordt voor elke MC een onRollOver en een onRoll/DragOut actie aangemaakt. In de onRollOut wordt de depth verhoogd en de onEnterFrame wordt op next() gezet, zodat de mc vooruit gaat spelen. In de onRollOut gebeurt precies het omgekeerde.

Montecarlo
%Europe/Berlin %754 %2005, 19:06
Allereerst bedankt voor de reactie. Ik begin het een beetje te begrijpen (denk ik):#
Ik heb dit in keyframe 1 geplaatst, waar beide MC's instaan, dat klopt toch? Alleen bij het afspelen van de swf file zie ik voor de rest nog geen verschil. Of moet ik in het ActionScript van MC1 en MC2 ook nog wat plaatsen?

Daarnaast heb ik in MC1 nog een MC (MC1a) geplaatst, maar hoe speel ik die af op commando?

Flasher
%Europe/Berlin %765 %2005, 19:22
-Haal alle scripts weg uit je Movieclips
-Haal alle scripts weg die OP de mcs staan
-zorg dat de instancenamen van je MCs kloppen, ook met hoofd/kleine letters
-Geef je symbolen in je library duidelijke namen en verwijder ongebruikte symbolen
Dan zou het moeten werken.


function next() {
if(this._currentframe < this._totalframes) this.nextFrame();
else {
delete this.onEnterFrame;
this.MC1a.play();
}

zoiets misschien?

Montecarlo
%Europe/Berlin %833 %2005, 21:00
Super!!! het werkt! Alleen vraag ik me af wat ik die 2e post aan moest? dat was toch ter vervanging het deel wat er al stond? Echter dat werkt niet.

Mag ik je anders nog om 1 gunst vragen. Nu is het overlappen van MC1 en MC2 ondervangen. Maar nu wil ik eigenlijk in MC1 (maar ook in MC2) meerdere MC's (meer dan 10) allemaal opdezelfde manier laten afspelen (dus inzoomen en uitzoomen) waar ook weer overlapping mogelijk is.

groeten,
Montecarlo

Flasher
%Europe/Berlin %530 %2005, 13:44
Als je je fla post kijk ik er vanmiddag wel ff naar, op dit moment heb ik geen kant en klare oplossing.

Montecarlo
%Europe/Berlin %544 %2005, 14:04
hier is de fla en swf file!
Je had al waarschijnlijk begrepen dat dit een test bestandje is. Als het geheel (het werkelijke bestand) straks klaar is, zal ik het je laten zien. Voor nu alvast bedankt voor de moeite. Echt super!

Flasher
%Europe/Berlin %606 %2005, 15:32
die MC1a, MC1b enz werken niet. :sad: Dat komt hoogstwaarschijnlijk omdat childs van een MC die mouse events heeft, zelf geen mouse events kunnen hebben.

Waarvoor heb je dit nodig, misschien is er een andere oplossing???

Montecarlo
%Europe/Berlin %695 %2005, 17:40
Hoi ik heb de definitieve fla en swf erbij gedaan. praat wat makkelijker.;-)

De MC's in the main timeline zijn delen van een plattegrond van een nog te bouwen woonwijk. Hier zoom ik dus op in ("denes1" en "dedelta1": motion-tween). Zodra ik daar op ingezoomd ben wil ik (middels MC's of evt buttons of als je een beter idee hebt) een markering geven op het moment je met de muis over een woning heen beweegt. Bijvoorbeeld een oplichtend sterretje op de plaats van de woning waarover heen bewogen wordt of dat de cursor van de muis verandert in het nr van de woning (dát zou helemaal super zijn). Tevens wil ik dan in een lijst ernaast de betreffende nr. van de woning met naam van de bewoner oplichten.
Het is echter onmogelijk om alle bouw nr's in één lijst te tonen, dus zal deze gesplitst moeten worden per deel en zal net als bij het inzoomen op een deel van de wijk een deel van de lijst geopend moeten worden. Dus de lijst moet eigenljk gekoppeld zijn aan de deelplattegrond (misschien in 1 MC?) Dus als je óf over de lijst óf over de deelplatetgrond beweegt dat beiden tegelijk inzoomen (motiontween)

Snap je het nog allemaal???? :#
Kijk maar in hoeverre je hier bij wil/kan helpen. In ieder geval bedankt voor hetgeen je al gedaan hebt. Je kan nu wel zien tot waar ik gekomen ben. Wordt best geinig al zeg ik het zelf :D

groeten,
Montecarlo
montecarlo@zonnet.nl (voor evt MSN ;-))

Flasher
%Europe/Berlin %803 %2005, 20:17
vanavond wordt het niks meer, maar morgen of overmorgen ga ik er wel ff naar kijken.
Ik zou trouwens die achtergrond als bitmap houden, dat is veel minder CPU-intensief.
Verder zou je misschien kunnen kijken naar een onMouseMove met een hitTest() op muis coordinaten of zoiets.

Succes!

Montecarlo
%Europe/Berlin %827 %2005, 20:51
okay bedankt alvast. ik zal eens kijken.

Flasher
%Europe/Berlin %849 %2005, 21:22
Het werkt toch zoals ik al dacht met een hitTest() en onMouseMove
In de fla werkt het nu voor 2 MCs, de rest lijkt me niet zo moeilijk

Suc6

PS. Je moet die bitmap in een of ander grafisch programma(desnoods paint) naar de grootte verschalen waarmee hij in de swf gebruikt wordt, nu is hij +/- 3000x2000 px ofzo.

Montecarlo
%Europe/Berlin %904 %2005, 22:41
Hey bedankt man! echt top. Ik ga weer (proberen) verder te knutselen. Als ie af is, laat ik het je wel zien (als je het leuk vindt).

groeten,
Montecarlo

Montecarlo
%Europe/Berlin %901 %2005, 22:38
Ben ik weer! Ben ondertussen wel wat verder, maar kom er toch niet helemaal uit. Ik heb gepuzzeld en ge[puzzeld, maar ik heb toch echt jullie hulp nodig.

Het volgende is het probleem:

(zie voor onderstaande uitleg bijgaand bestand voor de werking hiervan)

De hele basis waar het om draait is dat ik rechts een menu heb opgebouwd uit buttons (evt MC's mogelijk) en links een plattegrond opgebouwd uit een aantal MC's waarin weer MC's zitten (child MC's). De MC's in het plaatje moeten tevens het menu laten mee bewegen en andersom moet het op dezelfde manier werken.

Als ik met mijn muis over bijvoorbeeld MC "denes1" beweeg dan zoomt ie in. Dan zou die gelijk daar mee het menu aan de rechterkant moeten openen. Als je dan vervolgens over een huisje (MC "bouwnr1") beweegt op het ingezoomde deel dan zoomt zo'n huisje in en wordt ie tevens groen (als extra markering) én zou dus in het uitgeklapte menu aan de rechterkant de desbetreffende regel moeten oplichten. Het gehele menu is opgebouwd uit buttons, dus er moet eigenlijk voor die regel (button)een rollover effect ontstaan bij het bewegen over een huisje. Doordat ik de button met de tekst "de Nes" in de MC "denes1" heb geplaatst, reageert ie op dezelfde manier als bij de muisbeweging bij het inzoomende plaatje. Maar nu wil ik als het menu openklapt dat bij het bewegen over een regel dat het bijbehorende huisje inzoomt en groen oplicht.
Moet ik dan de regel (button) uit het uitgeklapte menu in MC "bouwnr1a", zodat ook deze op dezelfde muisbeweging reageert als MC "bouwnr1"? of kan ik een menu veel makkelijker koppelen aan de MC's in het plaatje?

Ik hoop dat jullie me kunnen/willen helpen.

groeten,
Montecarlo

Montecarlo
%Europe/Berlin %914 %2005, 22:57
is er dan niemand die mij wil/kan helpen?