Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 03-12-2008, 17:26   #1 (permalink)
Neuer User
 
Registriert seit: Nov 2008
Beiträge: 4
"Linealstriche" bleiben bei Timer-Einsatz hängen

Hallo liebe Flasher,

ich mühe mich gerade mit einem Lineal ab, welches "on the fly" erzeugt wird.
Die Maßstriche zu diesem Lineal "regnen" dabei von oben auf eine Linie herab.

Leider muss ich zugeben, dass ich nicht wirklich "fortgeschritten" bin, aber ich stelle das Problem hier rein, weil ich es für ein fortgeschrittenes halte.
Daher bitte ich um Nachsicht für ggf. etwas kruden Code – Verbesserungsvorschläge sind herzlich willkommen.

Also: Das Problem ist, dass parziell die Striche auf dem Weg nach unten hängen bleiben, quasi in der Luft einfrieren.

Wahrscheinlich läuft der Code zu schnell durch, um allen die Chance zu geben, anzukommen.

Ich wollte bewusst – aus Übungsgründen – auf den Einsatz von fertigen MCs für die Striche verzichten, um mal komplett ALLES per AS3 zu lösen.

Vielen Dank schon mal für alle hilfreichen Kommentare und Vorschläge!

Schöne Grüße
Dom

---------------------------------------------------------------
import flash.utils.Timer;
import fl.transitions.Tween;
import fl.transitions.easing.Regular;
import fl.transitions.TweenEvent;

var timer1:Timer = new Timer(10, 245);
timer1.addEventListener(TimerEvent.TIMER, childHinzu);

var timer2:Timer = new Timer(5)
timer2.addEventListener(TimerEvent.TIMER, linieZiehen);

var linieLang:Shape = new Shape();
linieLang.graphics.lineStyle(0.5, 0xC1CBD0, .50);
linieLang.graphics.moveTo(0, 125);
linieLang.graphics.lineTo(-1024, 125);
this.addChild(linieLang);

var i:int = 0;
var j:int = 20;
var k:int = 45;

timer1.start();
timer2.start();

function childHinzu (event:TimerEvent) {
if (i == j) {
var strichLang:Shape = new Shape();
strichLang.graphics.lineStyle(0.5, 0xC1CBD0, .50);
strichLang.graphics.moveTo(i, 0);
strichLang.graphics.lineTo(i, -15);
this.addChild(strichLang);
var strichLangMove:Tween = new Tween(strichLang, "y", Regular.easeIn, 0, 125, 0.25, true);
strichLangMove;
j = j + 50;
} else if (i == k) {
var strichMittel:Shape = new Shape();
strichMittel.graphics.lineStyle(0.5, 0xC1CBD0, .50);
strichMittel.graphics.moveTo(i, 0);
strichMittel.graphics.lineTo(i, -10);
this.addChild(strichMittel);
var strichMittelMove:Tween = new Tween(strichMittel, "y", Regular.easeIn, 0, 125, 0.25, true);
strichMittelMove;
k = k + 50;
} else {
var strichKurz:Shape = new Shape();
strichKurz.graphics.lineStyle(0.5, 0xC1CBD0, .50);
strichKurz.graphics.moveTo(i, 0);
strichKurz.graphics.lineTo(i, -5);
this.addChild(strichKurz);
var strichKurzMove:Tween = new Tween(strichKurz, "y", Regular.easeIn, 0, 125, 0.25, true);
strichKurzMove;
i = i + 5;
}

if (strichKurz.x == 1025) {
timer1.stop();
i = 0;

}
}

function linieZiehen (event:TimerEvent) {
linieLang.x += 5;
if (linieLang.x >= 1025) {
timer2.stop();
}
}
DomSch ist offline   Mit Zitat antworten
Alt 03-12-2008, 19:45   #2 (permalink)
Neuer User
 
Benutzerbild von :: RK ::
 
Registriert seit: Jan 2002
Ort: Umgebung Stuttgart
Beiträge: 5.412
hi,

hab jetzt keine lösung für dich aber bitte in Zukunft deinen Code in entsprechende
BB-Codes schreiben und sauber einrücken, damit man ihn besser lesen kann.

ActionScript:
  1. import flash.utils.Timer;
  2. import fl.transitions.Tween;
  3. import fl.transitions.easing.Regular;
  4. import fl.transitions.TweenEvent;
  5.  
  6. var timer1:Timer = new Timer(10, 245);
  7. timer1.addEventListener(TimerEvent.TIMER, childHinzu);
  8.  
  9. var timer2:Timer = new Timer(5)
  10. timer2.addEventListener(TimerEvent.TIMER, linieZiehen);
  11.  
  12. var linieLang:Shape = new Shape();
  13. linieLang.graphics.lineStyle(0.5, 0xC1CBD0, .50);
  14. linieLang.graphics.moveTo(0, 125);
  15. linieLang.graphics.lineTo(-1024, 125);
  16. this.addChild(linieLang);
  17.  
  18. var i:int = 0;
  19. var j:int = 20;
  20. var k:int = 45;
  21.  
  22. timer1.start();
  23. timer2.start();
  24.  
  25. function childHinzu (event:TimerEvent) {
  26.   if (i == j) {
  27.     var strichLang:Shape = new Shape();
  28.     strichLang.graphics.lineStyle(0.5, 0xC1CBD0, .50);
  29.     strichLang.graphics.moveTo(i, 0);
  30.     strichLang.graphics.lineTo(i, -15);
  31.     this.addChild(strichLang);
  32.     var strichLangMove:Tween = new Tween(strichLang, "y", Regular.easeIn, 0, 125, 0.25, true);
  33.     strichLangMove;
  34.     j = j + 50;
  35.   } else if (i == k) {
  36.     var strichMittel:Shape = new Shape();
  37.     strichMittel.graphics.lineStyle(0.5, 0xC1CBD0, .50);
  38.     strichMittel.graphics.moveTo(i, 0);
  39.     strichMittel.graphics.lineTo(i, -10);
  40.     this.addChild(strichMittel);
  41.     var strichMittelMove:Tween = new Tween(strichMittel, "y", Regular.easeIn, 0, 125, 0.25, true);
  42.     strichMittelMove;
  43.     k = k + 50;
  44.   } else {
  45.     var strichKurz:Shape = new Shape();
  46.     strichKurz.graphics.lineStyle(0.5, 0xC1CBD0, .50);
  47.     strichKurz.graphics.moveTo(i, 0);
  48.     strichKurz.graphics.lineTo(i, -5);
  49.     this.addChild(strichKurz);
  50.     var strichKurzMove:Tween = new Tween(strichKurz, "y", Regular.easeIn, 0, 125, 0.25, true);
  51.     strichKurzMove;
  52.     i = i + 5;
  53.   }
  54.  
  55.   if (strichKurz.x == 1025) {
  56.     timer1.stop();
  57.     i = 0;
  58.   }
  59.  
  60. }
  61.  
  62. function linieZiehen (event:TimerEvent) {
  63.   linieLang.x += 5;
  64.   if (linieLang.x >= 1025) {
  65.     timer2.stop();
  66.   }
  67. }
__________________
Das Glück im Leben hängt von den guten Gedanken ab, die man hat.

Easing_Equations / Flash Kontaktformular / FlashPlugin W3C konform / Nützliche Beiträge zu FAQs
:: RK :: ist offline   Mit Zitat antworten
Alt 04-12-2008, 08:11   #3 (permalink)
Neuer User
 
Registriert seit: Nov 2008
Beiträge: 4
Lesbarkeit

Ja, stimmt - in Flash sieht das auch noch besser aus. War gestern Abend etwas in Eile. Sorry für die "Schludrigkeit" und Danke fürs saubere Abbild.
DomSch ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
action script 3, as 3, timer, timerevent, zeichen-api

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 11:53 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele