PDA

Volledige versie bekijken : aansturing functies


ixus
%Europe/Berlin %587 %2005, 15:06
Om actionscript goed te leren ben ik me de laatste tijd helemaal het lazerus aan het oefenen.
Op dit moment ben ik veel bezig met functies...

Nu heb ik het volgende scriptje..

#include "mc_tween2.as"
//start variabele
square_mc._x = 40;
square_mc._y = 90;
//functies
function mcopen():Void{
square_mc.tween("_x", 400, 0.5, "easeOutBounce");
}
function mcclose():Void{
square_mc.tween("_x", 40, 0.5, "easeOutBounce");
}

Wat ik met dit experimentje wil bereiken is dat ik wanneer ik op de MC klik hij de ene keer naar x = 400 gaat en wanneer hij daar is en ik klik wederom op de MC hij weer terug gaat naar x = 40.
ik kan wel die functie aanroepen met square_mc.onPress = mcopen;,
maar dat gaat natuurlijk niet werken.
Dus

Vraag 1 :
Hoe dit te bereiken ?
Vraag 2:
Nu heb ik bij de mcclose functie gewoon weer de oorspronkelijke x waarde toegekend.
Is er ook een mogelijkheid om op een andere manier de MC naar zijn basis waarde te sturen?

Alvast bedankt

Dauntless
%Europe/Berlin %648 %2005, 16:33
[CODE]#include "mc_tween2.as"[/QUOTE]
I'm guessing dat je die mc_tween2.as niet zelf geschreven hebt ? Waar heb je hem vandaan ?
Als je begint is het misschien wel handig om voorgemaakte functies te gebruiken, maar als je beter begint te worden moet je het zelf eens proberen :).

Ik weet dat er een component (mxp) file was met easing classes, maar is dat deze? Bij die component moest je in een onEnterFrame checken of de mc nog aan het easen was (iets van if(!myMc.isTweening()) of zo. Als dat dan false is kan je terug easen.

ixus
%Europe/Berlin %669 %2005, 17:04
[CODE]#include "mc_tween2.as"
I'm guessing dat je die mc_tween2.as niet zelf geschreven hebt ? Waar heb je hem vandaan ?
[/QUOTE]

Nee, die mc_tween2.as heb ik natuurlijk niet zelf geschreven. (was het maar waar...:P)
Er had net zo goed een andere functie kunnen staan bijv.
function mcopen():Void{
square_mc._x = 700;
}
function mcclose():Void{
square_mc._x = 0;
}
square_mc.onPress =(mcopen);

Het gaat mij erom hoe ik deze MC met elke keer weer een ander functie kan aansturen.
Dus in dit geval moet hij de eerste keer naar x = 700 en de 2e keer klikken naar x = 0.

Die MC-tween komt van http://proto.layer51.com/d.aspx?f=804 en is verrekte handig... :)
Er is ook nog een andere.....
check http://laco.wz.cz/tween/?page=download

Dauntless
%Europe/Berlin %671 %2005, 17:07
Dat kan je bv zo doen:

var Xcoor:Array = new Array(40, 700, 698, 10, 5, 879);
var pos:Number = 0;
myButton.onRelease = releaseHandler;
function releaseHandler():Void
{
myMovieClip._x = Xcoor[pos];
pos ++;
}

ixus
%Europe/Berlin %692 %2005, 17:37
Okay, dat is idd een prima optie op met arrays te werken.
Maar als ik dit nu eens wil toepassen op die tween prototype ?

Als je nu het volgende van deze prototype weet ?

Usage

myMC.tween(property(ies), ending value(s) [, seconds, animation type, delay, callback, extra1, extra2]);

Parameters

property(ies) : Property or properties to be tweened. This can be a single string containing one property name (as in "_x"), or an array containing a list of property names (as in ["_x", "_y"]). Properties need not be standard instance properties like "_x" or "_alpha" - they can be simple variables and refer to object-specific attributes like "counter" or "myPointer".


Het is dus ook hierbij mogelijk om een array in de properties te verwerken, maar ik krijg dat niet voor elkaar...

Nogmaals, ik wil bij een keer op de MC klikken een actie hebben en wanneer deze actie is afgelopen, wil ik dat wanneer je weer op die MC klikt hij weer terugkomt op de originele locatie.

Suggesties Dauntless ???