Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 30-11-2004, 10:47   #1 (permalink)
mentally ill
 
Registriert seit: Aug 2004
Beiträge: 172
dynamische MC führen Scripte bei onRollOver / onRollOut nicht aus

hallo,

hab ebend schon im forum gesucht, aber hab nichts gefunden was mir weiterhelfen konnte.

ich baue ein dynamisches menü und will bei onRollOver / onRollOut die _y position der untermenüpunkte verschieben.

hab versucht meinen code an folgende beiträge anzupassen:

OnRollOver Ereignis bei dynamisch generiertem MC funktioniert nicht
OnRollOver Funktion ausführen

PHP-Code:
stop();
//Hauptnavigationspunkte
var navi = new Array();

navi[0] = "FIRMA";
navi[1] = "LEISTUNGEN";
navi[2] = "PROJEKTE";
navi[3] = "KUNDEN";
navi[4] = "KONTAKT";
navi[5] = "LOGIN";

//Unterpunkte
var sub = new Array();

sub[0] = new Array();
sub[0][0] = "Historie";
sub[0][1] = "Profil";
sub[0][2] = "Team";
sub[0][3] = "Home";

sub[1] = new Array();
sub[1][0] = "Entwicklungsmanagement";
sub[1][1] = "Projektmanagement";
sub[1][2] = "Projektsteuerung";
sub[1][3] = "Facility Management";

sub[2] = new Array();
sub[2][0] = "Leisure & Entertainment";
sub[2][1] = "Pharma & Healthcare";
sub[2][2] = "Industry & Infrastructure";

//variable zur Platzierung der MC's
var tiefe 20;

function 
navigation () {
    
    
//Hauptpunkte
    
for (var 0navi.lengtha++) {
        
this.attachMovie("btn""navi_" navi[a], tiefe);
        
this["navi_" navi[a]]._x 20 + (138 a) + 10;
        
this["navi_" navi[a]]._y 100;
        
this["navi_" navi[a]].createTextField("navi_" navi[a] + "_text"12213838);
        
this["navi_" navi[a]]["navi_" navi[a] + "_text"].text navi[a];
        
tiefe--;
        
        
//Unterpunkte
        
for (var 0sub[a].lengthi++) {
            
this.attachMovie("btn""sub_" navi[a] + itiefe);
            
this["sub_" navi[a] + i]._x 20 + (138 a) + 10;
            
this["sub_" navi[a] + i]._y 100;
            
this["sub_" navi[a] + i].createTextField("sub_" navi[a] + "_text"12213838);
            
this["sub_" navi[a] + i]["sub_" navi[a] + "_text"].text sub[a][i];
            
tiefe --;
        }
        
tiefe --;
        
        
//MouseOver Effekt
        
this["navi_" navi[a]].onRollOver = function () {
//trace ("Over");
            
for (var 0sub[a].lengthu++) {
                
this["sub_" navi[a] + u]._y 100 + ((1) * 22);
            }
        }
        
        
//MouseOut Effekt
        
this["navi_" navi[a]].onRollOut = function () {
//trace ("Out");
                
for (var 0sub[a].lengthu++) {
                    
this["sub_" navi[a] + u]._y 100;
                }
                
        }

    }
}
navigation(); 
die trace in der over und out funktion funktionieren 1a, aber warum macht er die verschiebung nicht!?

grüße
markus
__________________
there is no place like 127.0.0.1
--------------------------------------------------
[STUFF] E-Mail Liste für Newsletter o.ä.
[STUFF] MySQLConnector Klasse
menty ist offline   Mit Zitat antworten
Alt 30-11-2004, 12:42   #2 (permalink)
mentally ill
 
Registriert seit: Aug 2004
Beiträge: 172
hab mal die onRollOver und onRollOut funktion ausgelagert und testweise einen dynamisch erzeugten MC angesprochen, dort klappt das.

ich habe schon extra mit der funktionsbelegung gewartet, bis die sub-MC's geladen sind. muß ich in der onRollOver funktion die MC's anders ansprechen?

PHP-Code:
_root.navi_FIRMA.onRollOver = function () {
    
_root.sub_FIRMA0._y 200;    
}

_root.navi_FIRMA.onRollOut = function () {
    
_root.sub_FIRMA0._y 100;    

__________________
there is no place like 127.0.0.1
--------------------------------------------------
[STUFF] E-Mail Liste für Newsletter o.ä.
[STUFF] MySQLConnector Klasse
menty ist offline   Mit Zitat antworten
Alt 30-11-2004, 15:21   #3 (permalink)
mentally ill
 
Registriert seit: Aug 2004
Beiträge: 172
ok, hab das jetzt soweit lokalisiert, daß ich weiss das die zählervariablen der for schleifen nicht in die onRollOver und RollOut funktionen übernommen werden.

weiss wer evt. ob die eventhandler "geschlossene" systeme sind, und wenn ja wie kann ich da ran! mit global oder so?

gruß
markus
__________________
there is no place like 127.0.0.1
--------------------------------------------------
[STUFF] E-Mail Liste für Newsletter o.ä.
[STUFF] MySQLConnector Klasse
menty ist offline   Mit Zitat antworten
Alt 30-11-2004, 15:50   #4 (permalink)
mentally ill
 
Registriert seit: Aug 2004
Beiträge: 172
sooo, das mit dem onRollOver und onRollOut funzt nun.

PHP-Code:
stop();

//Hauptnavigationspunkte
var navi = new Array();
navi[0] = new Array();
navi[0][0] = "FIRMA";
navi[0][1] = "Historie";
navi[0][2] = "Profil";
navi[0][3] = "Team";
navi[0][4] = "Home";
navi[1] = new Array();
navi[1][0] = "LEISTUNGEN";
navi[1][1] = "Entwicklungsmanagement";
navi[1][2] = "Projektmanagement";
navi[1][3] = "Projektsteuerung";
navi[1][4] = "Facility Management";
navi[2] = new Array();
navi[2][0] = "PROJEKTE";
navi[2][1] = "Leisure & Entertainment";
navi[2][2] = "Pharma & Healthcare";
navi[2][3] = "Industry & Infrastructure";
navi[3] = new Array();
navi[3][0] = "KUNDEN";
navi[4] = new Array();
navi[4][0] = "KONTAKT";
navi[5] = new Array();
navi[5][0] = "LOGIN";

//Namen Array für die Buttons
var main_punkte = new Array();
var 
sub_punkte = new Array();

//Tiefe für die Platzierung
var main_tiefe 20;
var 
sub_tiefe 1;

//Hauptpunkte generieren
for (0navi.lengthi++) {
    
this.attachMovie("main_mc""main_" imain_tiefe);
    
this["main_" i]._x = (141 i) + 5;
    
this["main_" i]._y 100;
    
this["main_" i]._width 142;
    
this["main_" i]._height 22;
    
this["main_" i].createTextField("text_" i12213238);
    
this["main_" i]["text_" i].selectable 0;
    
this["main_" i]["text_" i].text navi[i][0];
    
//Buttonname ins Array schreiben
    
main_punkte.push(this["main_" i]._name);

//Unterpunkte generieren
    
for (1navi[i].length;  a++) {
        
this.attachMovie("sub_mc""sub_" "_"  asub_tiefe);
        
this["sub_" "_" a]._x = (141 i) + 5;
        
this["sub_" "_" a]._y 101;
        
this["sub_" "_" a].createTextField("text_" "_"  a12214020);
        
this["sub_" "_" a]["text_" "_" a].selectable 0;
        
this["sub_" "_" a]["text_" "_" a].text navi[i][a];
        
//Buttonname ins Array schreiben
        
sub_punkte.push(this["sub_" "_" a]._name);
        
sub_tiefe++;
    }
    
main_tiefe++;
}

for (
0main_punkte.lengthu++) {
    
//onRollOver Effekt
    
_root[main_punkte[u]].onRollOver = function () {
        var 
main_name this._name.split("_");
        var 
sub 0;
        for (
0sub_punkte.lengthy++) {
            var 
sub_name sub_punkte[y].split("_");
            if (
sub_name[1] == main_name[1]) {
                
sub++;
                
_root[sub_punkte[y]]._y 101 + (21 sub);
            }
        }
    }
    
//onRollOut Effekt
    
_root[main_punkte[u]].onRollOut = function () {
        var 
main_name this._name.split("_");
        for (
0sub_punkte.lengthy++) {
            var 
sub_name sub_punkte[y].split("_");
            if (
sub_name[1] == main_name[1]) {
                
_root[sub_punkte[y]]._y 101;
            }
        }
    }

wie kann ich nun abfangen ob man mit der maus gerade auf einem der untermenüpunkte ist? weil wenn ich nun die hauptpunkte mit der maus verlasse, dann ploppt das untermenü ja wieder zu...
__________________
there is no place like 127.0.0.1
--------------------------------------------------
[STUFF] E-Mail Liste für Newsletter o.ä.
[STUFF] MySQLConnector Klasse
menty ist offline   Mit Zitat antworten
Alt 30-11-2004, 16:34   #5 (permalink)
_//\\#//\\_
 
Benutzerbild von warrantmaster
 
Registriert seit: Jan 2003
Beiträge: 7.060
kürzer:

PHP-Code:
function navigation () {
    
    
//Hauptpunkte
    
for (var 0navi.lengtha++) {
        
this.attachMovie("btn""navi_" navi[a], tiefe);
        
this["navi_" navi[a]].id=a//<---------------------------------!!!!
        
this["navi_" navi[a]]._x 20 + (138 a) + 10;
        
this["navi_" navi[a]]._y 100;
        
this["navi_" navi[a]].createTextField("navi_" navi[a] + "_text"12213838);
        
this["navi_" navi[a]]["navi_" navi[a] + "_text"].text navi[a];
        
tiefe--;
        
        
//Unterpunkte
        
for (var 0sub[a].lengthi++) {
            
this.attachMovie("btn""sub_" navi[a] + itiefe);
            
this["sub_" navi[a] + i]._x 20 + (138 a) + 10;
            
this["sub_" navi[a] + i]._y 100;
            
this["sub_" navi[a] + i].createTextField("sub_" navi[a] + "_text"12213838);
            
this["sub_" navi[a] + i]["sub_" navi[a] + "_text"].text sub[a][i];
            
tiefe --;
        }
        
tiefe --;
        
        
//MouseOver Effekt hier finden sich die id's wieder
        
this["navi_" navi[a]].onRollOver = function () {
            for (var 
0sub[this.id].lengthu++) {
                
this._parent["sub_" navi[this.id] + u]._y 100 + ((1) * 22);
            }
        }
        
        
//MouseOut Effekt
        
this["navi_" navi[a]].onRollOut = function () {
                for (var 
0sub[this.id].lengthu++) {
                    
this._parent["sub_" navi[this.id] + u]._y 100;
                }
                
        }

    }


du mußt nur die zählervariable "mitnehmen"

zum jetzigen prob:

den rollout-effekt verzögern (per interval z.b.)

wenn dann zwischenzeitlich ein rollover auf einem sub erfolgt ist,
die zeitverzögerung neu starten. ist ein wenig pruckelig.
warrantmaster ist offline   Mit Zitat antworten
Alt 01-12-2004, 08:53   #6 (permalink)
mentally ill
 
Registriert seit: Aug 2004
Beiträge: 172
*fall auf die knie* ich bin unwürdig, ich bin unwürdig

der gott der flashmenüs hat sich meiner angenommen *smile*

hab im vorfeld deinen beitrag zum thema flashmenüs mit xml verschlungen, bin leider vom wissensstand noch nicht so weit...
muß das mit den klassen und prototypen noch mal durchpaucken...

werde das mal ausprobieren mit der id, sieht im vorfeld schon sehr vielversprechend aus, muß das aber auf meinen jetztigen stand ummünzen.

hab über das problem mit dem RollOut noch mal geschalfen und werde den unterpunkten auch rollover und rollout effekte geben, die orientieren sich dann an der hauptpunkt id (weden immer als gruppe gehandelt). muss den einzelnen unterpunkten eh noch highlighting geben, von daher passiert das dann in einem rutsch *zwinker*

weiteres problem ist halt die generelle schriftenhandhabung in flash. muss eine selbstgebaute font verwenden die flash mal wieder nur schwammig darstellt, aber dazu gibts hier ja genug andere themen, hab da schon mal reingelesen....

naja, hoffe ich bekomme heute das mit den unterpunkten hin, das sie sich nur zuklappen wenn man den hauptpunkt oder die unterpunkte verlässt...

in dem sinne, einen guten start in den arbeitstag
__________________
there is no place like 127.0.0.1
--------------------------------------------------
[STUFF] E-Mail Liste für Newsletter o.ä.
[STUFF] MySQLConnector Klasse
menty 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 05:10 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele