Volledige versie bekijken : tweenen in as
ath92
%Europe/Berlin %278 %2005, 07:40
omdat ik het niet vond op het nieuwe forum,(wat niet zo gek is), en ik het nóg niet weet: hoe moet ik tweenen in as naar een bepaald punt
alvast bedankt......
Jordy
%Europe/Berlin %289 %2005, 07:57
je bedoeld motion tween dus ;).
function ease() {
if(MCVierkant._x == 80) {
trace("X is 80");
}
else {
MCVierkant += 5
}
}
maak een MC aan en geef deze de instancename "MCVierkant" :cool:
TheDutch
%Europe/Berlin %332 %2005, 08:59
Jordy, dat is geen easing jouw code hoor en er is ook geen interval of onEnterFrame...niet bruikbaar dus.
Omdat ik denk dat easing de volgende stap is begin ik met een simpel "scripted motion" script voor je, die alleen vooruit naar rechts rechts:
// Snelheid is 5 pixels
speed = 5;
// Nieuwe positie is 200 pixels verder dan de huidige positie
newPos = this._x + 200;
// deMC is de MovieClip die je wilt laten bewegen
// onEnterFrame wordt het aantal FPS uitgevoerd
deMC.onEnterFrame = funtion(){
// Tel voor elke FPS de snelheidswaarde bij de huidige positie op
this._x += _root.speed;
// Wanneer de positie bereikt is stop dan de beweging
if(this._x >= _root.newPos){
delete this.onEnterFrame;
}
}
ath92
%Europe/Berlin %479 %2005, 12:30
thnx, ff kijken of het werkt; het ziet er in ieder geval wel logisch uit!
ath92
%Europe/Berlin %483 %2005, 12:36
euhm.... ik weet dat het stom klinkt maarrr....... waar moet ik hem op plaatsen?
Roenes
%Europe/Berlin %484 %2005, 12:37
Gewoon op een frame :)
ath92
%Europe/Berlin %486 %2005, 12:39
ok is gelukt, bedankt
PS: ja, kweethet ik ben een noob :P
ath92
%Europe/Berlin %489 %2005, 12:44
ahum, wat dope ik fout, ik wou iets met de width gaan doen, maar dan werkt ie niet meer......
// Snelheid is 5 pixels
speed = 5;
// Nieuwe positie is 200 pixels verder dan de huidige positie
newWidth = deMC.width + 200;
// deMC is de MovieClip die je wilt laten bewegen
// onEnterFrame wordt het aantal FPS uitgevoerd
deMC.onEnterFrame = function(){
// Tel voor elke FPS de snelheidswaarde bij de huidige positie op
deMC.width += _root.speed;
// Wanneer de positie bereikt is stop dan de beweging
if(deMC.width >= _root.newWidth){
delete this.onEnterFrame;
}
}
Jordy
%Europe/Berlin %491 %2005, 12:47
had beter niet kunnen posten, :P dan zo vroeg al iets (fouts) posten :P sorry hehe
TheDutch
%Europe/Berlin %495 %2005, 12:53
width moet _width zijn ;)
Roenes
%Europe/Berlin %499 %2005, 12:58
had beter niet kunnen posten, :P dan zo vroeg al iets (fouts) posten :P sorry heheAch ken gebeuren he :)
ath92
%Europe/Berlin %665 %2005, 16:57
THNX!!!!! dit is echt leuk :)
TheDutch
%Europe/Berlin %674 %2005, 17:11
Dat is het zeker! En dit is nog maar het begin... :)
Roenes
%Europe/Berlin %674 %2005, 17:11
Welkom in de wereld van AS :)
ath92
%Europe/Berlin %681 %2005, 17:21
euhm dan nu nog een vraag: hoe kun je er voor zorgen dat je movieclip ALTIJD gecenteerd staat in de movie?
ath92
%Europe/Berlin %681 %2005, 17:21
bedankt :D
Roenes
%Europe/Berlin %689 %2005, 17:33
euhm dan nu nog een vraag: hoe kun je er voor zorgen dat je movieclip ALTIJD gecenteerd staat in de movie?Dan moet ten eerste het registratiepunt van de movieclip precies in het midden staan. Daarna kun je met deze code de mc centreren tov de stage:
mc._x = Stage.width / 2;
mc._y = Stage.height / 2;
mc is dan de instancenaam van je movieclip :) (code moet op een frame :))
ath92
%Europe/Berlin %712 %2005, 18:06
thnx :D
PS: ik ben nu aan het onzin typen om mijn bericht maximaal 10 tekens te maken :D
ath92
%Europe/Berlin %723 %2005, 18:22
ja: nog een vraag!!! (ik weet het, er komt geen einde aan :P) hoe kan ik deze tween nou laten easen :P nou ga uw gang en geef een reactie!
Roenes
%Europe/Berlin %767 %2005, 19:24
newPos = this._x + 200;
deMC.onEnterFrame = funtion()
{
this._x += (newPos - this._x) / 10;
if(this._x >= _root.newPos) delete this.onEnterFrame;
}
Volgens mij door het rode regeltje. Weet ik zo alleen niet helemaal zeker. En ik heb voor de makkelijkheid even de code van TheDutch gebruikt :)
Flashingback
%Europe/Berlin %794 %2005, 20:03
Als je mx 2004 hebt is dit een beter manier (niewer) http://www.actionscript.org/tutorials/advanced/Tween-Easing_Classes_Documented/index.shtml
ath92
%Europe/Berlin %800 %2005, 20:12
srry, kan geen engels...... naja een beetje maar daar kun je vrijwel geen tutorials mee lezen :D
ath92
%Europe/Berlin %838 %2005, 21:07
ik heb nu eerst een paar keer geprobeerd,maar geloof me; ik kom er dus echt niet uit.....
hij stopt gewoon niet als hij een bepaald punt heeft bereikt...... weet iemand het?
// Snelheid is 5 pixels
speed = 10;
// Nieuwe positie is 200 pixels verder dan de huidige positie
newWidth = 300;
newPos = deMC._x + (deMC.width/2);
// deMC is de MovieClip die je wilt laten bewegen
// onEnterFrame wordt het aantal FPS uitgevoerd
deMC.onEnterFrame = function(){
// Tel voor elke FPS de snelheidswaarde bij de huidige positie op
this._width -= (this._width - _root.newWidth) / 10;
this._x += speed;
// Wanneer de positie bereikt is stop dan de beweging
if(deMC._width <= _root.newWidth && deMC._x >= _root.newPos){
delete this.onEnterFrame;
loadMovie("main.swf", "deMC");
}
}
Roenes
%Europe/Berlin %867 %2005, 21:49
if(deMC._width >= _root.newWidth && deMC._x >= _root.newPos){
Dat ding wat ik rood heb gemaakt daar ligt het volgens mij aan :)
theFlashWizard
%Europe/Berlin %868 %2005, 21:51
read and learn:
http://www.actionscript.nl/data/tutmove.htm
TrueChaoZ
%Europe/Berlin %870 %2005, 21:54
deMC.onEnterFrame = function(){
//...strip..
if(deMC._width <= _root.newWidth && deMC._x >= _root.newPos){
delete this.onEnterFrame;
loadMovie("main.swf", "deMC");
}
}
aangezien je al in de deMC.onEnterFrame zit kan je volgens mij niet bij je if statement deMC opvragen en attributen daarvan, dat zou dan moeten zijn this._width bijv. aangezien je al in die mc werkt
Roenes
%Europe/Berlin %875 %2005, 22:01
aangezien je al in de deMC.onEnterFrame zit kan je volgens mij niet bij je if statement deMC opvragen en attributen daarvan, dat zou dan moeten zijn this._width bijv. aangezien je al in die mc werktWel hoor, dat kan helemaal geen kwaad. Het is alleen netter en dynamischer om met this te werken in de onEnterFrame maar er is niets op tegen om gewoon de instancenaam te blijven gebruiken. (trace de instancenaam maar eens in de onEnterFrame van dezelfde mc :))
TrueChaoZ
%Europe/Berlin %900 %2005, 22:37
Wel hoor, dat kan helemaal geen kwaad. Het is alleen netter en dynamischer om met this te werken in de onEnterFrame maar er is niets op tegen om gewoon de instancenaam te blijven gebruiken. (trace de instancenaam maar eens in de onEnterFrame van dezelfde mc :))
ok das nice :) (kheb het niet uitgeprobeerd maar ik geloof je, ik werk zelf altijd met this namelijk, ook omdat ik dacht dat dit moest)
Roenes
%Europe/Berlin %911 %2005, 22:53
Ik gebruik ook altijd this. Dit is netter en houd de boel dynamischer. Maar het is dus niet verplicht :)
ath92
%Europe/Berlin %428 %2005, 11:16
al ik deze code op de mc zet:
this.onEnterFrame = function (){
deMC._width -= (deMC._width - newWidth) / 10;
}
krijg ik de volgende foutmelding:
**Error** Scene=Scene 1, layer=Layer 1, frame=1:Line 1: Statement must appear within on/onClipEvent handler
this.onEnterFrame = function (){
Total ActionScript Errors: 1 Reported Errors: 1
Roenes
%Europe/Berlin %451 %2005, 11:50
code moet ook niet op een mc maar op een frame :)
Code die is opgemaakt in de variant on(press){} moet op een mc of button en code die is opgemaakt in de variant mc.onPress = function(){} moet op een frame :)
TheDutch
%Europe/Berlin %570 %2005, 14:41
Als je mx 2004 hebt is dit een beter manier (niewer) http://www.actionscript.org/tutorials/advanced/Tween-Easing_Classes_Documented/index.shtml
Ben ik niet met je eens. Je hebt veel minder controle over deze manier van dingen animeren met AS en de animaties vind ik personlijk een heel stuk minder 'smooth' dan wanneer je het zelf script. :)
Roenes
%Europe/Berlin %709 %2005, 18:02
Benk met TheDutch eens, en daar komt bij dat dat soort dingentjes vaak vrij snel gescript kunnen worden. Noujah de standaard ease acties en zo :)
theFlashWizard
%Europe/Berlin %715 %2005, 18:10
Eigenlijk wil je het ook zelf kunne he.. teminste.. ik..
vBulletin® v3.8.1, Copyright ©2000-2012, Jelsoft Enterprises Ltd.