Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 18-05-2009, 22:51   #1 (permalink)
Neuer User
 
Benutzerbild von Bexsta
 
Registriert seit: Oct 2006
Beiträge: 140
Variable behindert und funktion widerholen (Anfänger - Ding)

Hallo,

versuche mich gerade denn actionscript etwas zu nähern und
stecke in einer sackgasse.

blows_mc bewegt sich nicht weil die variablen "end" ständig den aktuellen wert _y zurück setzt.

PHP-Code:
attachMovie("blows""blows_mc"1);

var 
zahl Math.random() * 800;
var 
end  400;

blows_mc.onEnterFrame = function(){

this._x zahl;
this._y end -  2;    
    
    if (
blows_mc._y 0){
    
    }

statt: end einfach this._y geht leider nicht weil der mc von unten los laufen soll.

Danke
Bexsta
__________________
Friedrichshagen

Geändert von Bexsta (18-05-2009 um 22:56 Uhr)
Bexsta ist offline   Mit Zitat antworten
Alt 18-05-2009, 23:04   #2 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Das geht eigentlich mit gescripteten Tweens viel einfacher. Alleine schon deshalb, weil du dich nicht um die onEnterFrame-Events oder Intervalle kümmern musst. Mal ein Beispiel:
PHP-Code:
import mx.transitions.*;
import mx.transitions.easing.*;

this.createEmptyMovieClip("con",1);
this.con.attachMovie("blows""blows_mc"1); 

var 
start Math.random() * 800;
var 
end  400;

//bewegt den MC con auf der x-Achse vom Zufallswert nach 400 in 0,6 Sekunden in einer gleichförmigen Bewegung
var tw1 = new Tween(con"_x"mx.transitions.easing.None.easeNonestartend0.6true);

//dito mit y
var tw2 = new Tween(con"_y"mx.transitions.easing.None.easeNonestartend0.6true); 
  Mit Zitat antworten
Alt 18-05-2009, 23:15   #3 (permalink)
Neuer User
 
Benutzerbild von Bexsta
 
Registriert seit: Oct 2006
Beiträge: 140
Danke für die schnelle Antwort.
__________________
Friedrichshagen
Bexsta ist offline   Mit Zitat antworten
Alt 18-05-2009, 23:49   #4 (permalink)
Neuer User
 
Benutzerbild von Bexsta
 
Registriert seit: Oct 2006
Beiträge: 140
wie müßte es denn nun aussehen damit es ab der randum Zahl endlos wiederhollt wird?
welche schleife müßte man am besten wo ansätzen?

Vieleicht kannst du mir da aushelfen?
__________________
Friedrichshagen

Geändert von Bexsta (19-05-2009 um 00:00 Uhr)
Bexsta ist offline   Mit Zitat antworten
Alt 19-05-2009, 00:29   #5 (permalink)
Neuer User
 
Benutzerbild von Bexsta
 
Registriert seit: Oct 2006
Beiträge: 140
muß nochmal dazu sagen, bin absoluter einsteiger und das ist alles absolutes neuland.

habe probiert eine if schleife hinten ran z hängen um zu sehen ob man dann vieleicht in einem anderen frame springen kan, denke dann könnte man das skript gut immer wieder von vorne laufen lassen.
der test ob das con mc gelöscht wird nach dem if hat nicht funktioniert oder ist was an der symantek falsch?

PHP-Code:
import mx.transitions.*;
import mx.transitions.easing.*;

this.createEmptyMovieClip("con",1);
this.con.attachMovie("blows""blows_mc"1); 

var 
start Math.random() * 764;

//bewegt den MC con auf der x-Achse vom Zufallswert nach 400 in 0,6 Sekunden in einer gleichförmigen Bewegung
var tw1 = new Tween(con"_x"mx.transitions.easing.None.easeNonestartstart8.0true);

//dito mit y
var tw2 = new Tween(con"_y"mx.transitions.easing.None.easeNone400, -368.0true);  

if (
this.con._y == -36){
    
this.con.removeMovieClip("con");
    
    } 
__________________
Friedrichshagen

Geändert von Bexsta (19-05-2009 um 00:44 Uhr)
Bexsta ist offline   Mit Zitat antworten
Alt 19-05-2009, 01:12   #6 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Zitat:
habe probiert eine if schleife hinten ran z hängen um zu sehen ob man dann vieleicht in einem anderen frame springen kan
Die if-Abfrage wird ja nur genau einmal durchlaufen, wenn die Bedingung in dem Moment nicht true ist, hast du Pech. Frag das einfach kontinuierlich auf einem onEnterFrame-Event ab.

Zitat:
ob man dann vieleicht in einem anderen frame springen kan, denke dann könnte man das skript gut immer wieder von vorne laufen lassen
Das kannst du auch auf demselben Frame laufen lassen, abhängig davon, wann eine neue Zufallszahl gesucht wird und wann die Tweens neulaufen sollen. Bspw. kannst du auf einem onMotionFinished-Event das Tween-Ende abfangen und dann die neue Zufallszahl berechnen und neue Tweens starten. Am besten du erstellst dir dafür einen Funktionsblock.

Zitat:
muß nochmal dazu sagen, bin absoluter einsteiger und das ist alles absolutes neuland.
Dann solltest du sehr intensiv die Flash-Hilfe nutzen...
  Mit Zitat antworten
Alt 19-05-2009, 10:26   #7 (permalink)
Neuer User
 
Benutzerbild von Bexsta
 
Registriert seit: Oct 2006
Beiträge: 140
morgen,

kan man denn nicht einfach im motionfinshed eine neue zahl vergeben und die tweens wider starten?

es wird eine neue Zahl ermittelt allerdings scheint das eine andere zu sein, er überschreibt nicht die var start?
__________________
Friedrichshagen
Bexsta ist offline   Mit Zitat antworten
Alt 19-05-2009, 10:30   #8 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Trace dir die Variable start doch einfach mal aus...
  Mit Zitat antworten
Alt 19-05-2009, 10:32   #9 (permalink)
Neuer User
 
Benutzerbild von Bexsta
 
Registriert seit: Oct 2006
Beiträge: 140
PHP-Code:

var rp Math.random() * 764;
    
trace(rp);
    
    
    
//bewegt den MC con auf der x-Achse vom Zufallswert nach 400 in 0,6 Sekunden in einer gleichförmigen Bewegung
    
var tw1 = new Tween(con"_x"mx.transitions.easing.None.easeNonerprp8.0true);

    
//dito mit y
    
var tw2 = new Tween(con"_y"mx.transitions.easing.None.easeNone400, -368.0true);   
    
    
tw2.onMotionFinished = function() {
    
    
rp Math.random() * 764;
    
trace(rp); 
    
    
tw1.start();
    
tw2.start(); 
__________________
Friedrichshagen
Bexsta ist offline   Mit Zitat antworten
Alt 19-05-2009, 10:41   #10 (permalink)
Neuer User
 
Benutzerbild von Bexsta
 
Registriert seit: Oct 2006
Beiträge: 140
kommt der rp nicht aus die funktion raus?
__________________
Friedrichshagen
Bexsta ist offline   Mit Zitat antworten
Alt 19-05-2009, 10:48   #11 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Nein, das erste rp ist eine Zeitleistenvariable, die andere ist lokal im Tween-Objekt.
  Mit Zitat antworten
Alt 19-05-2009, 12:34   #12 (permalink)
Neuer User
 
Benutzerbild von Bexsta
 
Registriert seit: Oct 2006
Beiträge: 140
wenn ich die var rp in einer function später überschreibe (_global) ist der wert der variable nur so lange da, bis die funktion beendet ist?
__________________
Friedrichshagen

Geändert von Bexsta (19-05-2009 um 12:43 Uhr)
Bexsta ist offline   Mit Zitat antworten
Alt 19-05-2009, 12:42   #13 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
_global benötigst du hier doch gar nicht, es reicht auch, eine Zeitleistenvariable zu nehmen, bspw.:
PHP-Code:
var rp Math.random() * 764;
trace(rp);
    
    
    
//bewegt den MC con auf der x-Achse vom Zufallswert nach 400 in 0,6 Sekunden in einer gleichförmigen Bewegung
    
var tw1 = new Tween(con"_x"mx.transitions.easing.None.easeNonerprp8.0true);

    
//dito mit y
    
var tw2 = new Tween(con"_y"mx.transitions.easing.None.easeNone400, -368.0true);   
    
    
tw2.onMotionFinished = function() {
       
//rp liegt auf der Hauptzeitleiste, kann also mit _root angesprochen werden
       
_root.rp Math.random() * 764;
       
trace("_root.rp="+_root.rp); 
    
       
tw1.start();
       
tw2.start();  

  Mit Zitat antworten
Alt 19-05-2009, 13:24   #14 (permalink)
Neuer User
 
Benutzerbild von Bexsta
 
Registriert seit: Oct 2006
Beiträge: 140
Cheff, ich danke dir.

es sieht nun folgender maßen aus und funktioniert.

PHP-Code:
import mx.transitions.*;
import mx.transitions.easing.*;

this.createEmptyMovieClip("con",1);
this.con.attachMovie("blows""blows_mc"1); 

function 
fblows () {
    
rp Math.random() * 764;
trace ("rp = " rp);
    
    var 
tw1 = new Tween(con"_x"mx.transitions.easing.None.easeNonerprp8.0true);

    var 
tw2 = new Tween(con"_y"mx.transitions.easing.None.easeNone400, -368.0true);   
    
    
tw2.onMotionFinished = function() {
        
        
fblows();
    }
};

fblows(); 
__________________
Friedrichshagen
Bexsta ist offline   Mit Zitat antworten
Alt 20-05-2009, 13:00   #15 (permalink)
Neuer User
 
Benutzerbild von Bexsta
 
Registriert seit: Oct 2006
Beiträge: 140
ich würde das gerne noch erweitern, in dem ich die blase ein wenig nach links und rechts wackeln lassen will.

rp im tw1 wird als anfangs und end punkt genommen, wenn ich dort nun zahlen addiere und subtrahiere, wird rp ständig ausgelesen und der tween würde dann so verlaufen oder wird rp einmal gelesen und dann steht der verlauf fest?
__________________
Friedrichshagen
Bexsta 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 08:25 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele