Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 05-12-2003, 10:24   #1 (permalink)
this.onEnterFame
 
Benutzerbild von RedSaint
 
Registriert seit: Feb 2002
Ort: Jetzte: Stuttgart
Beiträge: 1.666
wie: 5x res. sparender onEnterFrame (game)

moin moin!

bin am basteln und das ganze projekt wird recht voluminös.

-> ich habe 5 barometer (man stelle sich 5 ladebalken vor)
-> diese baros bekommen im laufe der zeit unterschiedliche werte zugewiesen und skalieren entsprechend
-> das skalieren hab ich mit nem tween vom 0.-100. frame angelegt
-> eigentlich könnte ich jetzt jedem baro sagen:
ActionScript:
  1. onClipEvent(enterFrame){
  2. this.gotoAndStop(_root.baro01Variable);
  3. }

aber so langsam bekomme ich verdammt viele onEnterFrames und allein für die baros 5 stück, die ja nicht immer gebraucht werden? daher:

1.) da gibts doch bestimmt was geschickteres...oder?

2.) kann ich nicht eine function schreiben, die immer bei änderung der entspr. variable den dazugehörigen baroMc anschmeißt?

3.) ein barometer wird alle 30 sek. um 1% grösser...das sollte in der function drin sein. ich dachte mir das mit nem setInterval zumachen -> ist das sinnig oder auch eher res. fressend?

da ich nicht wirklich der hammeroberüber-coder bin wäre ich dankbar für antworten und evtl. code ansätze bzw. denk-vorschläge wie´s sonst gehen könnte ...


grüße

_RED_
__________________
_may the force be with you_
.................................................. .........
on Fire 2008
.................................................. .........

Easy Crime available here
.................................................. .........

_RED_ + Flashforum = Big Love
.................................................. .........

A.K.A: ACHIM 0815
RedSaint ist offline   Mit Zitat antworten
Alt 05-12-2003, 11:00   #2 (permalink)
HAY
Neuer User
 
Benutzerbild von HAY
 
Registriert seit: Aug 2002
Ort: Faust-Stadt
Beiträge: 2.577
hi
warum machst du das überhaupt in einen oEF
ActionScript:
  1. baro1.gotoAndStop(_root.baro01Variable);
reicht doch dann oder blick ich es nicht richtig
__________________
gruß Harry
HAY ist offline   Mit Zitat antworten
Alt 05-12-2003, 11:02   #3 (permalink)
wissbegierig
 
Registriert seit: Nov 2003
Ort: Hamburg
Beiträge: 206
Hi Red,

Stell mal Deine swf oder fla online. Eine richtige Vorstellung von Deinem Problem kann ich mir bei Deiner Beschreibung leider nicht machen.
PIXIX ist offline   Mit Zitat antworten
Alt 05-12-2003, 11:12   #4 (permalink)
this.onEnterFame
 
Benutzerbild von RedSaint
 
Registriert seit: Feb 2002
Ort: Jetzte: Stuttgart
Beiträge: 1.666
ok - ein bischen ausgedehnter:

das ganze wird ein spiel. es gibt 5 persönlichkeitsfaktoren die sich im laufe der level -je nach user verhalten- ändern (adventure mäßig).
die verschiedenen pers.faktoren werden durch die barometer dargestellt.
die pers. faktoren beeinflussen sich gegenseitig. wenn beispielsweise baro01 um 2 steigt fällt baro 4 um 10 ...usw...

-> daher wäre es ungünstig das immer per hand zu steuern, sondern besser einmal die variablen mit den barometer anims zu verbinden und dann in den leveln nurnoch die werte bei useraktion zu setzten.
-> so muss ich später in den leveln nurnoch:

ActionScript:
  1. _root.variable01+=2;
  2. _root.variable04-=10;

setzzten muss und die animation an den barometern läuft automatisch ab ...

-> also müssten die barometer ständig "zuhören" wie´s um ihre variable bestellt ist und entsprechend tweenen / oder nicht ...

meine frage war ob´s ne mgl. gibt das ohne oEF auf allen 5 baros zu machen.
in der HZL so alla:
ActionScript:
  1. function barometer (){if(irgendeine variable sich geändert hat){
  2. check aus welche;
  3. sag dem entsprechenden barometer{
  4. gotoAndStop(wert der geänderten variable),
  5. }
  6. }
  7. }

aufruf dann durch:
ActionScript:
  1. on(press){
  2. _root.barometer;
  3. _root.variable01+=2;
  4. _root.variable04-=10;
  5. }





_RED_
__________________
_may the force be with you_
.................................................. .........
on Fire 2008
.................................................. .........

Easy Crime available here
.................................................. .........

_RED_ + Flashforum = Big Love
.................................................. .........

A.K.A: ACHIM 0815

Geändert von RedSaint (05-12-2003 um 11:15 Uhr)
RedSaint ist offline   Mit Zitat antworten
Alt 05-12-2003, 11:24   #5 (permalink)
HAY
Neuer User
 
Benutzerbild von HAY
 
Registriert seit: Aug 2002
Ort: Faust-Stadt
Beiträge: 2.577
hi
hm da würde ich den setinterval nehmen da kanst du dan selber sagen in welchem interval du deine bars aktualisieren möchtest.
ActionScript:
  1. var o=this.createEmptyMovieClip("baro0",0);
  2. o.beginFill (0x0000FF);
  3. o.lineStyle (1, 0x0000FF);
  4. o.lineTo (10, 0);
  5. o.lineTo (10, 100);
  6. o.lineTo (0, 100);
  7. o.lineTo (0, 0);
  8. o.endFill()
  9. for(i=1;i<5;i++){
  10. baro0.duplicateMovieClip("baro"+i,i,{_x:i*30});
  11. }
  12. init=function(){
  13.  for(i=0;i<5;i++){
  14.     _root["baro"+i]._yscale=random(100)
  15. }
  16. }
  17. id = setInterval(init,  4000);
__________________
gruß Harry
HAY ist offline   Mit Zitat antworten
Alt 05-12-2003, 11:45   #6 (permalink)
Neuer User
 
Benutzerbild von K-Grabowski
 
Registriert seit: Jan 2003
Ort: Arminia!!!! Bielefeld
Beiträge: 1.138
du kannst doch jedesmal wenn du einen wert änderst deine Funktion ansprechen also;

ActionScript:
  1. _root.myVar1 += 5;
  2. _root.changebars();
  3.  
  4.  
  5.  
  6. _root.changebars = function () {
  7.     bar1.gotoAndStop(_root.myVar1);
  8. bar2.gotoAndStop(_root.myVar2);
  9. bar3.gotoAndStop(_root.myVar3);
  10. bar4.gotoAndStop(_root.myVar4);
  11. bar5.gotoAndStop(_root.myVar5);
  12. }
__________________
Wieviel hätte ich also für dieses Fahrzeug zu investieren???
K-Grabowski ist offline   Mit Zitat antworten
Alt 05-12-2003, 12:50   #7 (permalink)
.--. .. ..- ...
 
Benutzerbild von pius
 
Registriert seit: Jul 2002
Ort: munich
Beiträge: 1.345
es gibt da auch noch das schöne 'watch' ... oder du definierst die eigenschaften mit einer 'getter/setter'-function, die diann die Änderungen automatisch vornimmt ... oder die Objecte sind listener eines Broadcasters und amenden sich selbst ... oder oder ... auf jeden fall gibt es elegantere lösungen als ein oEF oder ein Interval (was letztlich resourcenmäßig das selbe ist ...)

__________________
one out of many
pius ist offline   Mit Zitat antworten
Alt 05-12-2003, 15:10   #8 (permalink)
this.onEnterFame
 
Benutzerbild von RedSaint
 
Registriert seit: Feb 2002
Ort: Jetzte: Stuttgart
Beiträge: 1.666
danke für die antworten...

@HAY & pius

wie gesagt halt ich mich jetzt nicht für den obercoder...watcher & listener... nie gehört *schäm* ...sind das mc´s die OEF variabolen abfragen und functionen auslösen?

@K-Grabowski

das war mein ansatz...da ich letztlich allerdings wollte, dass die balken nicht nur springen sondern per as tweenen hab ich mal folgendes gemacht:


in der HZL:
ActionScript:
  1. _root.variable01=_root.balken01._xscale;
  2. function changebars() {
  3.     speed=5;
  4.     _root.balken01._xscale += (_root.variable01-_root.balken01._xscale)/speed;
  5. }


und auf einen beliebigen mc dann:
ActionScript:
  1. onClipEvent(enterFrame){
  2.     _root.changebars();
  3. }

jetzt kann ich den tween für beliebig viele balken definieren und sobald ich eine variable verändere wird über changbars() die änderung durchgeführt ...

-> allerdings hab ich jetzt doch nen OEF ... hab verschiedenen sachen mit nem setInterval versucht, der abbricht wenn _root.balken01._xscale==_root.variable01 ... aber hat nie gefunzt...

hat jemand ne idee wie ich es ohne onEnterFrame hinbekomme?

-> if variable geändert, füre so lange changbars() durch bis _root.balken01._xscale==_root.variable01 , dann kill diese schleife... bei mir ist immer der rechner abgestürzt beim testen ...



thanks 4 help ...

_RED_
__________________
_may the force be with you_
.................................................. .........
on Fire 2008
.................................................. .........

Easy Crime available here
.................................................. .........

_RED_ + Flashforum = Big Love
.................................................. .........

A.K.A: ACHIM 0815
RedSaint ist offline   Mit Zitat antworten
Alt 05-12-2003, 19:26   #9 (permalink)
Neuer User
 
Benutzerbild von K-Grabowski
 
Registriert seit: Jan 2003
Ort: Arminia!!!! Bielefeld
Beiträge: 1.138
machst du deine Seite in Flash 5 oder MX ??

Wenn MX dann machste es einfach so;

ActionScript:
  1. MovieClip.prototype.scaler = function (tarS,speed) {
  2.     curS = this._xscale;
  3.     Sdiff = tarS - curS;
  4.     this._xscale = tarS - Sdiff/speed;
  5.     if (Math.abs(Sdiff) <= 1) {
  6.        this._xscale = tarS;
  7.        return true;
  8.     }
  9. }
  10.  
  11.  
  12. function changebars () {
  13.   createEmptyMovieClip("movebars",2222);
  14.   movebars.onEnterFrame = function () {
  15.          var t1 = _root.balken01.scaler(_root.variable1,1.4);
  16.            var t2 = _root.balken02.scaler(_root.variable2,1.4);
  17.  var t3 = _root.balken03.scaler(_root.variable3,1.4);
  18.  var t4 = _root.balken04.scaler(_root.variable4,1.4);
  19.  var t5 = _root.balken05.scaler(_root.variable5,1.4);
  20.  if (t1 && t2 && t3 && t4 &&t5) {
  21. this.removeMovieClip();
  22. }
  23. }
  24. }

aber kannste bestimmt noch optimieren, ist nur so dahingeschrieben.
__________________
Wieviel hätte ich also für dieses Fahrzeug zu investieren???

Geändert von K-Grabowski (05-12-2003 um 19:27 Uhr)
K-Grabowski ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 13:36 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele