Zurück   Flashforum > Flash > Flash Einsteiger

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 02-01-2008, 23:04   #1 (permalink)
King of the Pogo
 
Benutzerbild von davelcf
 
Registriert seit: Jun 2001
Ort: nähe Ffm
Beiträge: 266
Unhappy variable erhöhen oder verringern hakt etwas ???

hallo,

mein script im root
PHP-Code:
var feuerzeug 1;

playmc.onRelease = function() {
  
playmc.play();
      if(
feuerzeug == 1) {
            
feuerzeug ++;
     } else {
            
feuerzeug --;
      } 

    
trace(feuerzeug);


hier mal eine trace aktion:

2
1
2
2
1
2
1
2
1
2
1
2
1
2
1
2
1
2
1
2
1
2
2
1
2


da seht ihr, dass es oft funktioniert, aber auch manchmal zwei 2er untereinander stehen, was nicht der fall sein sollte.. hat jemand einen verbesserungsvorschlag?

ich will damit n mc steuern, wenn 1, dann steht er, wenn 2, dann läuft er.
hängt hiermit zusammen

danke schonmal
__________________
Think different
davelcf ist offline   Mit Zitat antworten
Alt 03-01-2008, 01:57   #2 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.326
Code:
playmc.run=false;
playmc.onRelease = function() {
  if (this.run==false)
  { this.run=true;
    this.play();
  }
};
//
// und im letzten frame von playmc, bzw. dort wo es gestoppt wird:
this.stop();
this.run = false;
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (03-01-2008 um 02:03 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 03-01-2008, 16:59   #3 (permalink)
King of the Pogo
 
Benutzerbild von davelcf
 
Registriert seit: Jun 2001
Ort: nähe Ffm
Beiträge: 266
hey hgseib,

war vielleicht n bisschen verwirrend das script in der form zu posten.
also das playmc.play(); hat mit der variablen sache garnix zu tun, das sagt nur dem "play button", dass er ein frame weiterspringen soll um das pause-symbol anzuzeigen.

das ganze skript liegt auf nem frame im root und nich auf dem symbol (du hattest in nem andern thread geschrieben, dass dies up-to-date sei).

mit der variablen ( 1 oder 2 ) will ich ermöglichen, dass der film, welchen ich mit nem dragslider (wie in quicktime o.ä.) steuern will, steht oder läuft auch nach dem loslassen des dragbuttons. den im moment läuft der grad komisch weiter, auch wenn er zu beginn stand.. hier mal das root script

PHP-Code:
//variable zur filmsteuerung
var feuerzeug 1;

var 
home:MovieClip this.psychose.farben02;//Deklarieren der root, um sie aus den funktionen ansprechen zu können.
var slideBarR:Number psychose._x+psychose._width;
var 
slideBarX:Number psychose._x;
var 
meinArray:Array = new Array (1,4,7,10,13,16,19,22,25,28,31,34,37,40,43,46,49,52,55,58,61,64,67,70);

slideThumb.onPress = function() {
    
startDrag(thisfalseslideBarXthis._yslideBarRthis._y);
    
startSlide();//starte Funktion startHitTest() die....
};
slideThumb.onRelease slideThumb.onReleaseOutside=slideThumb.onRollOut=function () {
    
this.stopDrag();
    
delete home.onEnterFrame;
};

function 
startSlide():Void {// .... hier anfängt
    
home.onEnterFrame = function() {
        var 
ziele:Number meinArray.length;
        var 
goto:Number meinArray[Math.round((slideThumb._x/slideBarR)*(ziele-1))];
        if(
feuerzeug == 2) {
            
home.gotoAndPlay(goto);
        } else {
             
home.gotoAndStop(goto);
        }

        
//trace(home._currentframe);
    
};
}

//pause/play button steuerung
playmc.onRelease = function() {
  
playmc.play();
      if(
feuerzeug == 1) {
            
feuerzeug ++;
     } else {
            
feuerzeug --;
      } 

    
trace(feuerzeug);

abgesehn von der variablen sache gibts da noch so einige probleme, aber erstmal will ich das in ordnung bringen...

merci again.
__________________
Think different
davelcf ist offline   Mit Zitat antworten
Alt 04-01-2008, 00:46   #4 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.326
ohne etwas testen zu können kann man dazu wenig sagen. lade mal eine vereinfachte demo-fla hoch.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 04-01-2008, 02:22   #5 (permalink)
King of the Pogo
 
Benutzerbild von davelcf
 
Registriert seit: Jun 2001
Ort: nähe Ffm
Beiträge: 266
liegt schon heir irgendwo aufm server.

http://www.flashforum.de/forum/attac...7&d=1199381902
__________________
Think different
davelcf ist offline   Mit Zitat antworten
Alt 04-01-2008, 02:38   #6 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.326
du hast auf root eine zeitleiste bis 72
immer wenn die auf frame 1 loopt, dann wird erneut
var feuerzeug = 1;
trace("hallo"); // ergänze das mal!
ausgeführt und danach falsch gezählt.
lösche die alle, du brauchst da nur einen frame.

diese routine geht auch mit deiner mehrfachinitialisierung richtig:
Code:
playmc.onRelease = function() {
  this.gotoAndStop(feuerzeug=3-this._currentframe);
  trace(feuerzeug);
};
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (04-01-2008 um 03:14 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 04-01-2008, 16:27   #7 (permalink)
King of the Pogo
 
Benutzerbild von davelcf
 
Registriert seit: Jun 2001
Ort: nähe Ffm
Beiträge: 266
ja granate...
was einem nich so alles NICHT auffällt.
dank Dir.

das andere werd ich gleich mal überprüfen, wenn ich meine externe platte fit gemacht hab..
__________________
Think different
davelcf ist offline   Mit Zitat antworten
Alt 04-01-2008, 19:11   #8 (permalink)
King of the Pogo
 
Benutzerbild von davelcf
 
Registriert seit: Jun 2001
Ort: nähe Ffm
Beiträge: 266
magie...

kannst du mir
PHP-Code:
this.gotoAndStop(feuerzeug=3-this._currentframe
nochma genauer erklären? wie kommt da der wert der variable zustande?
__________________
Think different
davelcf ist offline   Mit Zitat antworten
Alt 05-01-2008, 14:37   #9 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.326
hoffe doch, das du bis 3 zahlen kannst ;-)
3-1 = 2 und
3-2 = 1 und
3-1 = 2 und
3-2 = 1 und
3-1 = 2 und
3-2 = 1 und
...
und das wird feuerzeug= zugewiesen. wie vorher auch.
du hast in deiner programmierung die variable benützt, die ungewollt verändert wurde. ich benütze halt die aktuelle frame-position von playmc. also genau genommen wird feuerzeug garnicht benötigt. du könntest immer direkt playmc._currentframe abfragen.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (05-01-2008 um 14:40 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 05-01-2008, 16:50   #10 (permalink)
King of the Pogo
 
Benutzerbild von davelcf
 
Registriert seit: Jun 2001
Ort: nähe Ffm
Beiträge: 266
ein fuchs mit dem äußeren eines orang-utan babys... WAHNSINN...

gut, jetzt widme ich mich mal wieder meinem slider kram. hoffentlich find ich da bald ne lösung für die diversen problemchen...
__________________
Think different
davelcf ist offline   Mit Zitat antworten
Alt 05-01-2008, 17:14   #11 (permalink)
King of the Pogo
 
Benutzerbild von davelcf
 
Registriert seit: Jun 2001
Ort: nähe Ffm
Beiträge: 266
hey hgseib,

meinst du, dass der film ohne die variable – also nur wie von dir angeregt mit _currentframe, schneller laufen würde?

ich hab nämlcih grad den eindruck, dass der vor jeder abfrage von feuerzeug n kurzen hänger produziert

PHP-Code:
home.onEnterFrame = function() {
    if(
_root.feuerzeug == 1) {
        
home.stop();
    } else {
        
home.play();
    }

hab das noch hinzugefügt um dem playmc endlich seine funktion zu verpassen.

ich glaub, dass ich das ganze n bisschen zu kompliziert angeh, aber der slider brauch ja auch ne info was er mit dem home machen soll..?!?
__________________
Think different
davelcf ist offline   Mit Zitat antworten
Alt 06-01-2008, 02:18   #12 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.326
"..schneller laufen.."? probier es doch aus!

ansonsten:
home.onEnterFrame = function() {
// soll das ständig passieren, oder nur wenn der slider geschoben wird
home.onMouseMove = function() {



p.s.
denke doch, das ein orang-utan schlauer ist als ein fuchs. wenn du also nur die schlauheit eines fuchses zubilligst, dann ist das eine herabsetzung.
hmm, oder meinst du "so stinkisch wie" ... da sind sich die beiden vermutlich ebenbürgig?

zum glück bin ich weder das eine noch das andere ;-) der avatar spiegelt nur meinen gesichtsausdruck wieder, den ich bei so manchen beiträgen mache.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (06-01-2008 um 02:28 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 07-01-2008, 14:23   #13 (permalink)
King of the Pogo
 
Benutzerbild von davelcf
 
Registriert seit: Jun 2001
Ort: nähe Ffm
Beiträge: 266
hallo hgseib,

hast du velleicht ne ahnung, warum der slider nur das komplette array aufrufen kann, wenn var slideBarX:Number = 202; auf 1 steht und nicht auf 202?
wüsstest du eine lösung um dem slider zu sagen, dass er die 202 in der rechnung meinArray[Math.round((slideThumb._x/slideBarR)*(ziele-1))]; abzieht um auf die entsprechenden werte zu kommen?

PHP-Code:
//variable zur filmsteuerung
var feuerzeug 1;

var 
home:MovieClip this.psychose.farben02//Deklarieren der root, um sie aus den funktionen ansprechen zu können.
var slideBarR:Number 806;
var 
slideBarX:Number 202
var 
meinArray:Array = new Array (1,4,7,10,13,16,19,22,25,28,31,34,37,40,43,46,49,52,55,58,61,64,67,70);


slideThumb.onPress = function() {
    
startDrag(thisfalseslideBarXthis._yslideBarRthis._y);
    
startSlide(); //starte Funktion startHitTest() die....
};
slideThumb.onRelease slideThumb.onReleaseOutside slideThumb.onRollOut = function () {
    
this.stopDrag();
    
delete home.onMouseMove;
};

function 
startSlide():Void {// .... hier anfängt
    
home.onMouseMove = function() {
        var 
ziele:Number meinArray.length;
        
trace(ziele);
        var 
goto:Number meinArray[Math.round((slideThumb._x/slideBarR)*(ziele-1))];

        if(
feuerzeug == 2) {
            
home.gotoAndPlay(goto);
        } else {
             
home.gotoAndStop(goto);
        }

        
//trace(home._currentframe);
    
};

danke.
__________________
Think different
davelcf ist offline   Mit Zitat antworten
Alt 08-01-2008, 03:30   #14 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.326
Zitat:
Zitat von davelcf Beitrag anzeigen
warum der slider nur das komplette array aufrufen kann, wenn var slideBarX:Number = 202; auf 1 steht und nicht auf 202?
sorry, ich kann nicht nachvollziehen, was du meinst. in beiden fällen gibt das trace 24 aus.

und das
var ziele:Number = meinArray.length;
trace(ziele);
hat auch absolut nichts mit
var slideBarX:Number = 202; // =1;
zu tun. das du lediglich als linke grenze benützt, wie weit der schieber geschoben werden darf.
startDrag(this, false, slideBarX, this._y, slideBarR, this._y);


Zitat:
Zitat von davelcf Beitrag anzeigen
um auf die entsprechenden werte zu kommen?
welchen wert meist du und welchen hättest du den gerne?
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (08-01-2008 um 03:32 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 08-01-2008, 15:32   #15 (permalink)
King of the Pogo
 
Benutzerbild von davelcf
 
Registriert seit: Jun 2001
Ort: nähe Ffm
Beiträge: 266
sorry, hab den eintrag geschrieben als mein prof daneben gesessen hat.. war etwas unentspannt

PHP-Code:
var slideBarX:Number 202;  
var 
goto:Number meinArray[Math.round((slideThumb._x/slideBarR)*(ziele-1))]; 
alsomit der ersten zeile sag ich im, wo der slider seine startposition hat (202), in der zweiten Zeile benutzt er diesen Wert um die Array-Werte zu kreieren. Das Problem ist nun, dass er nurnoch an die 19te Stelle rankommt. Der Rechenweg ist nämlich:

slideThumb._x (minimaler zu erreichender Wert laut definition: 202)
geteilt durch
slideBarR (806)
= 0,25062035
mal ziele-1 (also 23)
=5,7642681
mit dem Math.round komme ich nurnoch an die 6te Stelle also die position 19.

ich brauch aber als minimales endergebnis einen anderen wert, sodass nach dem runden die position 1 rauskommt.
Dies wäre der Fall, wenn ich folgendes definieren würde:
PHP-Code:
var slideBarX:Number 1
allerdings liegt der slider dann ganz am Rand der Bühne, was ja nich meine absicht ist, er soll schon bei x = 202 liegen.


mir wäre noch eingefallen den ganzen slider kram in einen MC zu packen, aber da ich jetzt schon n paar stunden versucht hab die rechnung hinzubringen will ich auch ne lösung finden. wäre nett, falls du mir ne helfen könntest...
__________________
Think different

Geändert von davelcf (08-01-2008 um 15:34 Uhr)
davelcf 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 03:31 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele