Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 08-08-2006, 15:42   #1 (permalink)
Neuer User
 
Registriert seit: Oct 2001
Beiträge: 54
verschiedene actionen nacheinander

hi leute
bin wieder mal am schleudern und brauche eure hilfe

ich möchte ein dynamisches menue bauen
habe bereits das AS zusammengebastellt:-)
das die mc's erstellt mit dem text aus xml datei
und diese am linken rand positioniert
das geht auch

nun aber kommt das grosse problem:-(
nachdem das menue nun links sichtbar ist, soll es langsam von links nach rechts fahren
am liebsten jeder menuepunkt einzeln

leider lassen sich aber die erstellten mc nicht ansprechen, WARUM
um es besser zu testen, habe ich auf der gleichen ebene wie das der erstellte mc ein test mc erstellt image_mc8 und das geht.
Code:
stop();
//------------------------------------------------------------------------------------------------------Variablen
//this gleich mainall
fertig = 0
unternaviall_xpos1 = 0		// x Achse Unternavigation beginn Faden
unternaviall_xpos2 = 80		// x Achse Unternavigation ende Faden
unternaviall_ypos = 250;	// y Achse Unternavigation
abstand = 20;				// Abstand zwischen den Menuepunkten
unternaviall_alpha1 = 100	// alpba Unternavigation beginn Faden
unternaviall_alpha2 = 50
unternaviall_alpha3 = 0
//------------------------------------------------------------------------------------------------------XX
//einbetten der Schrift
var my_fmt:TextFormat = new TextFormat();
my_fmt.font = "meine_schrift";
//--------------------------------------------------------------------------------------Unternavigation erstellen
// die anzahl mus ich noch ersetzen sobald ich das XML verstehe
	anzahl = 5//_root.XMLObj.Interface.Menue1.Ref1._value.length; //liest die anzahl der elemente aus!
	anz = []; //neues array
	for (var i=0; i<anzahl; i++) {
			anz[i] = XMLdaten.firstChild.childNodes[i].attributes.anzeige;//auslesen
	}
	//gotoAndStop("projekte"); // ist das wirklich richtig so????

this.onEnterFrame = function(){
for (var i=0; i<anzahl; i++) {//wieder alle elemente durch gehen
	// neuer mc 
this.createEmptyMovieClip("image_mc"+i, i);
	//positionierung gemäss Variablen
	this["image_mc"+i]._x = unternaviall_xpos1;	
	this["image_mc"+i]._y = unternaviall_ypos+i*(this["image_mc"+i]._height+abstand);
	this["image_mc"+i]._alpha = 50;
	// neues textfeld auf 
this["image_mc"+i].createTextField("my_txt", i, this["image_mc"+i].getNextHighestDepth(), 10, i*20, 0, 0);
		//text aus array anz zuweisen
	this["image_mc"+i].my_txt.text = anz[i];
		//schrift einbetten ACHTUNG immer zuerst den Text aufrufen
		// Oder du nimmst setNewTextFormat(). Damit geht's andersrum
	this["image_mc"+i].my_txt.embedFonts = true;
	this["image_mc"+i].my_txt.setTextFormat(my_fmt);
		// autoSize = true wegen dynaisch langem Inhalt
	this["image_mc"+i].my_txt.autoSize = true;
	//this["image_mc"+i].my_txt.text.selectable = 1;	// ist bei einer mausaktion nicht nötig 
		// Mausaktionen
	this["image_mc"+i].onRollOver = function() { 
		this._alpha>100 ? this._alpha += 1 : this._alpha=100;
        if (this._alpha == 100) {	
            delete this.onEnterFrame;}
		};
//
}
}

//-----------------------------------------------------------------------------------------problemzone

// _x Achse von links nach recht bewegen sobald das menue aufgebaut ist "image_mc"+i
// zum testen mal nur 1 mc. möchte dann aber ALLE verschieben, schön nacheinander
new mx.transitions.Tween(this.image_mc1, "_x", mx.transitions.easing.Elastic.easeOut, 0, 300, 30, true);
//test mit rotem Quadrat um zu prüfen ob filter überhaupt geht
new mx.transitions.Tween(this.image_mc8, "_x", mx.transitions.easing.Elastic.easeOut, 0, 300, 30, true);
verkauf_13b.zip
dydu ist offline   Mit Zitat antworten
Alt 08-08-2006, 16:00   #2 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Zitat:
bin wieder mal am schleudern
...Ferkel

Deine rollOver-Function würde ich so auch nicht wirklich unterschreiben. Ansonsten mal kleines Beispiel:
PHP-Code:
stop();
//------------------------------------------------------------------------------------------------------Variablen
//this gleich mainall
fertig 0;
unternaviall_xpos1 0;
// x Achse Unternavigation beginn Faden
unternaviall_xpos2 80;
// x Achse Unternavigation ende Faden
unternaviall_ypos 250;
// y Achse Unternavigation
abstand 20;
// Abstand zwischen den Menuepunkten
unternaviall_alpha1 100;
// alpba Unternavigation beginn Faden
unternaviall_alpha2 50;
unternaviall_alpha3 0;
//------------------------------------------------------------------------------------------------------XX
//einbetten der Schrift
var my_fmt:TextFormat = new TextFormat();
my_fmt.font "meine_schrift";
//--------------------------------------------------------------------------------------Unternavigation erstellen
// die anzahl mus ich noch ersetzen sobald ich das XML verstehe
anzahl 5;
//_root.XMLObj.Interface.Menue1.Ref1._value.length; //liest die anzahl der elemente aus!
anz = [];
//neues array
for (var 0i<anzahli++) {
    
anz[i] = XMLdaten.firstChild.childNodes[i].attributes.anzeige;
    
//auslesen
}
//gotoAndStop("projekte"); // ist das wirklich richtig so????
for (var 0i<anzahli++) {
    
//wieder alle elemente durch gehen
    // neuer mc 
    
this.createEmptyMovieClip("image_mc"+ii);
    
//positionierung gemäss Variablen
    
this["image_mc"+i]._x unternaviall_xpos1;
    
this["image_mc"+i]._y unternaviall_ypos+i*(this["image_mc"+i]._height+abstand);
    
this["image_mc"+i]._alpha 50;
    
// neues textfeld auf 
    
this["image_mc"+i].createTextField("my_txt"ithis["image_mc"+i].getNextHighestDepth(), 10i*2000);
    
//text aus array anz zuweisen
    
this["image_mc"+i].my_txt.text anz[i];
    
//schrift einbetten ACHTUNG immer zuerst den Text aufrufen
    // Oder du nimmst setNewTextFormat(). Damit geht's andersrum
    
this["image_mc"+i].my_txt.embedFonts true;
    
this["image_mc"+i].my_txt.setTextFormat(my_fmt);
    
// autoSize = true wegen dynaisch langem Inhalt
    
this["image_mc"+i].my_txt.autoSize true;
    
//this["image_mc"+i].my_txt.text.selectable = 1;    // ist bei einer mausaktion nicht nötig 
    // Mausaktionen
    
this["image_mc"+i].onRollOver = function() {
        
this._alpha>100 this._alpha += this._alpha=100;
        if (
this._alpha == 100) {
            
delete this.onEnterFrame;
        }
    };
    
//
}
var 
0;
function 
tween_mc() {
    var 
nt = new mx.transitions.Tween(this["image_mc"+j], "_x"mx.transitions.easing.Elastic.easeOut03002true);
    
nt.onMotionFinished = function() {
        if (
j++<anzahl) {
            
tween_mc();
        }
    };
}
tween_mc() 
Warum importierst du eigentlich nicht über
PHP-Code:
import mx.transitions.Tween;
import mx.transitions.easing.*; 
den Krams?

Kannst dich auch hier mal etwas schlau machen:
http://www.kirupa.com/developer/actionscript/tween.htm
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 08-08-2006, 16:13   #3 (permalink)
Neuer User
 
Registriert seit: Oct 2001
Beiträge: 54
super vielen dank, ich werde mir das alles ansehen
irgendwie stecke ich nun mitten in funktionen und objekten:-)

ich muss mich in das thema einlesen, weiss nun aber, dass es nicht mehr anders geht:-)
muss nun leider weg, nun wo es gerade spannen wird, grrrrr

Geändert von dydu (08-08-2006 um 16:14 Uhr)
dydu ist offline   Mit Zitat antworten
Alt 08-08-2006, 21:29   #4 (permalink)
Neuer User
 
Registriert seit: Oct 2001
Beiträge: 54
bin erstaunt, ja eigentlich sollte das tweenen ja ohne den import gar nicht gehen oder? damit kommt ja erst das as in den flash
Code:
import mx.transitions.Tween; 
import mx.transitions.easing.*;
habe nun versucht das ganze etwas schneller ablaufen zu lassen
nicht erst am ende des Tween, irgendwie klappt es auch, doch dünkt mich das doch nicht so richtig
Code:
var j = 0; 
var tween_interval:Number = setInterval(fadeImage, 500);
function fadeImage(target_mc:MovieClip):Void {
        if (j++<anzahl) { 
            tween_mc();}
        else {
        clearInterval(tween_interval);
    }
}
function tween_mc() { 
    new mx.transitions.Tween(this["image_mc"+j], "_x", mx.transitions.easing.Elastic.easeOut, 0, 80, 2, true); 
} 
tween_mc()

Geändert von dydu (08-08-2006 um 22:02 Uhr)
dydu ist offline   Mit Zitat antworten
Alt 09-08-2006, 14:43   #5 (permalink)
Neuer User
 
Registriert seit: Oct 2001
Beiträge: 54
transitions.Tween

so habe weiter daran gebastelt, was ich nun überhaupt nicht verstehe
warum muss ich dass import mx.transitions.Tween bei der funktion angeben und kann das nicht ganz oben daklarieren? vor oder nach stop()

quälen tu ich mich auch immer noch mit dem set untervall, so wie das jetzt ist ist das sicher falsch.

eigentlich sollte doch die funktion tween_mc() weiter oben hin kommen oder?
vielen dank schon jetzt für die hilfe

PHP-Code:
stop(); 

//einbetten der Schrift 
var my_fmt:TextFormat = new TextFormat(); 
my_fmt.font "meine_schrift"
//XML einlesen 
// die anzahl muss ich noch ersetzen sobald ich das XML habe
anzahl 5
//_root.XMLObj.Interface.Menue1.Ref1._value.length; //liest die anzahl der elemente aus! 
anz = []; 
//neues array 
for (var 0i<anzahli++) { 
    
anz[i] = XMLdaten.firstChild.childNodes[i].attributes.anzeige
    
//auslesen 

//gotoAndStop("projekte");

for (var 0i<anzahli++) { 
    
//wieder alle elemente durch gehen 
    // neuer mc  
    
this.createEmptyMovieClip("unternavi_mc"+ii); 
    
//positionierung gemäss Variablen 
    
this["unternavi_mc"+i]._x 0
    
this["unternavi_mc"+i]._y 250+i*(this["unternavi_mc"+i]._height+20);
    
// 2 = abstand 
    
this["unternavi_mc"+i]._alpha 100
    
// neues textfeld auf  
    
this["unternavi_mc"+i].createTextField("my_txt"ithis["unternavi_mc"+i].getNextHighestDepth(), 10i*2000); 
    
//text aus array anz zuweisen 
    
this["unternavi_mc"+i].my_txt.text anz[i]; 
    
//schrift einbetten ACHTUNG immer zuerst den Text aufrufen 
    // Oder du nimmst setNewTextFormat(). Damit geht's andersrum 
    
this["unternavi_mc"+i].my_txt.embedFonts true
    
this["unternavi_mc"+i].my_txt.setTextFormat(my_fmt);
    
// autoSize = true wegen dynaisch langem Inhalt 
    
this["unternavi_mc"+i].my_txt.autoSize true
    
//this["unternavi_mc"+i].my_txt.text.selectable = 1;    // ist bei einer mausaktion nicht nötig  
    // Mausaktionen 
    
this["unternavi_mc"+i].onRollOut this["unternavi_mc"+i].onReleaseOutside = function(){
//----------------------------------------------------------Problemzone
//warum muss das hier sein?????
    
import mx.transitions.Tween;
    
import mx.transitions.easing.*;
    new 
Tween(this"_alpha"Strong.easeOut100501true);
}
    
this["unternavi_mc"+i].onRollOver = function(){
    new 
Tween(this"_alpha"Strong.easeIn501001true);
}
this["unternavi_mc"+i].onRelease = function() {
    new 
mx.transitions.Tween(this"_x"mx.transitions.easing.Elastic.easeOut801002true);
    
gotoAndStop ("projekt_anzeigen");
    } 
    
//}
    // 

//----------------Funktionen
// --------------------------nächste problemzone
// -------------das stimmt noch nicht ganz irgendwie dünkt mich das komisch:-)
var 0
var 
tween_interval:Number setInterval(tweenUnternavi500);
function 
tweenUnternavi(target_mc:MovieClip):Void {
        if (
j++<anzahl) { 
            
tween_mc();}
        else {
        
clearInterval(tween_interval);
    }
}
function 
tween_mc() { 
    var 
nt = new mx.transitions.Tween(this["unternavi_mc"+j], "_x"mx.transitions.easing.Elastic.easeOut0802true); 
    
// nachdem der menüpunkt angekommen ist soll _alpha auf 50 falls es dann mal klappt.-)
    
this["unternavi_mc"+i]._alpha 50
    }
tween_mc()
// 
dydu ist offline   Mit Zitat antworten
Alt 09-08-2006, 14:52   #6 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Hmmm...
Wenn du oben importierst, dann musst du halt unten nicht
PHP-Code:
var nt = new mx.transitions.Tween(this["unternavi_mc"+j], "_x"mx.transitions.easing.Elastic.easeOut0802true); 
sondern nur
PHP-Code:
var nt = new Tween(this["unternavi_mc"+j], "_x"Elastic.easeOut0802true); 
schreiben. Klar?
PHP-Code:
stop();
import mx.transitions.Tween;
import mx.transitions.easing.*;
//einbetten der Schrift 
var my_fmt:TextFormat = new TextFormat();
my_fmt.font "meine_schrift";
//XML einlesen 
// die anzahl muss ich noch ersetzen sobald ich das XML habe
anzahl 5;
//_root.XMLObj.Interface.Menue1.Ref1._value.length; //liest die anzahl der elemente aus! 
anz = [];
//neues array 
for (var 0i<anzahli++) {
    
anz[i] = XMLdaten.firstChild.childNodes[i].attributes.anzeige;
    
//auslesen 
}
//gotoAndStop("projekte");
for (var 0i<anzahli++) {
    
//wieder alle elemente durch gehen 
    // neuer mc  
    
this.createEmptyMovieClip("unternavi_mc"+ii);
    
//positionierung gemäss Variablen 
    
this["unternavi_mc"+i]._x 0;
    
this["unternavi_mc"+i]._y 250+i*(this["unternavi_mc"+i]._height+20);
    
// 2 = abstand 
    
this["unternavi_mc"+i]._alpha 100;
    
// neues textfeld auf  
    
this["unternavi_mc"+i].createTextField("my_txt"ithis["unternavi_mc"+i].getNextHighestDepth(), 10i*2000);
    
//text aus array anz zuweisen 
    
this["unternavi_mc"+i].my_txt.text anz[i];
    
//schrift einbetten ACHTUNG immer zuerst den Text aufrufen 
    // Oder du nimmst setNewTextFormat(). Damit geht's andersrum 
    
this["unternavi_mc"+i].my_txt.embedFonts true;
    
this["unternavi_mc"+i].my_txt.setTextFormat(my_fmt);
    
// autoSize = true wegen dynaisch langem Inhalt 
    
this["unternavi_mc"+i].my_txt.autoSize true;
    
//this["unternavi_mc"+i].my_txt.text.selectable = 1;    // ist bei einer mausaktion nicht nötig  
    // Mausaktionen 
    
this["unternavi_mc"+i].onRollOut this["unternavi_mc"+i].onReleaseOutside=function () {
        new 
Tween(this"_alpha"Strong.easeOut100501true);
    };
    
this["unternavi_mc"+i].onRollOver = function() {
        new 
Tween(this"_alpha"Strong.easeIn501001true);
    };
    
this["unternavi_mc"+i].onRelease = function() {
        new 
Tween(this"_x"Elastic.easeOut801002true);
        
gotoAndStop("projekt_anzeigen");
    };
    
//}
    // 
}
//----------------Funktionen
// --------------------------nächste problemzone
// -------------das stimmt noch nicht ganz irgendwie dünkt mich das komisch:-)
var = -1;
function 
tweenUnternavi():Void {
    if (
j++<anzahl-1) {
        var 
nt = new Tween(this["unternavi_mc"+j], "_x"Elastic.easeOut0802true);
        
nt.onMotionFinished = function() {
            
this.obj._alpha 50;
        };
    } else {
        
clearInterval(tween_interval);
    }
}
//
tweenUnternavi();
var 
tween_interval:Number setInterval(this"tweenUnternavi"500); 
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 11-08-2006, 07:59   #7 (permalink)
Neuer User
 
Registriert seit: Oct 2001
Beiträge: 54
ahaaaa:-) nun sehe ich es, da steht es ja auch noch:-)
also das habe ich nun begriffen:-)

habe das script studiert und mit Komantaren versehen
ganz alles ist mir noch nicht klar, war ja auch nicht anders zu erwarten:-)

also warum VOID

PHP-Code:
// -1 da bei Tween sonst mit dem unternavi_mc1 und nicht mit dem unternavi_mc0 begonnen wird
// WARUM sonst fängt es doch auch immer mit 0 an
var tween_interval:Number setInterval(this"tweenUnternavi"500); 
var 
= -1
// für was ist Void läuft mit und OHNE???
function tweenUnternavi():Void 
    if (
j++<anzahl-1) { 
        var 
nt = new Tween(this["unternavi_mc"+j], "_x"Elastic.easeOut0802true);
        
nt.onMotionFinished = function() { 
// ist da obj anstelle ["unternavi_mc"+j], das heist ich sprech gleich das verarbeitete objekt an
// also den jeweiligen unternavi_mc*
            
this.obj._alpha 50
        }; 
    } else { 
        
clearInterval(tween_interval); 
    } 

// 
tweenUnternavi(); 
sorry, dass ich erst jetzt wieder schreibe
lag kurz mit fieber im bett, willkommen winter:-)
dydu 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 14:28 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele