Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 17-03-2006, 10:20   #1 (permalink)
visitor
 
Registriert seit: Nov 2003
Ort: Stuttgart
Beiträge: 600
xml menu

hallo,

ich habe folgenden code für ein horizontales xml-menu:

PHP-Code:
var abstandMain:Number 10;
var 
abstandSub:Number 1;
//////////////////////////////////////
var xmlMenu:XML = new XML();
xmlMenu.ignoreWhite true;
xmlMenu.onLoad = function(success) {
    if (
success) {
        var 
mainItems this.firstChild.childNodes;
        for (var 
i:Number 0i<mainItems.lengthi++) {
            var 
mainBtn:MovieClip _root.attachMovie('main_btn''main_btn'+ii);
            
mainBtn.txt.autoSize true;
            if (
mainItems[i] != this.firstChild.lastChild) { 
                
mainBtn.txt.text mainItems[i].attributes.item "   |";
            } else {
                
mainBtn.txt.text mainItems[i].attributes.item;
            }
            
// new: var ID
            
mainBtn.ID i;
            
mainBtn._x = (mainBtn.txt._width abstandMain) * 200;
            
mainBtn._y 100;
            
mainBtn.onRollOver = function() {
                
this.gotoAndPlay(2);
            };
            
mainBtn.onRelease = function() {
                
// new: call anzeigen with argument ID ...
                
anzeige(this.ID);
                
trace(subMenu_mc._height);
                
trace(this)
            };
            
mainBtn.onRollOut = function() {
                
this.gotoAndPlay(1);
            };
        }
    }
}; 
wie bekomm ich es nun hin, dass der erste button bei x=250 und y=100 steht und der abstand der buttons der länge des jeweiligen textfeldes angepasst wird?
dazwischen soll immer ein " | " stehen.
neo14 ist offline   Mit Zitat antworten
Alt 17-03-2006, 12:49   #2 (permalink)
visitor
 
Registriert seit: Nov 2003
Ort: Stuttgart
Beiträge: 600
hmm...
keiner ne idee???

wenn ich die pfade zum node ändere, dann sthet undefined im textfeld (klar) aber die abstände und ausrichtung passt.

was los da???
neo14 ist offline   Mit Zitat antworten
Alt 17-03-2006, 12:53   #3 (permalink)
Pending…
 
Benutzerbild von psyk
 
Registriert seit: Jul 2002
Ort: Hamburg
Beiträge: 3.866
Hallo, das müsste Dir weiterhelfen.
PHP-Code:
var mainBtn:MovieClip _root.attachMovie('main_btn''main_btn'+ii);
mainBtn._x 250+i*prevMainBtn._width;
mainBtn._y 100
var prevMainBtn:MovieClip mainBtn
__________________
:: Warum einfach, wenn's auch kompliziert geht! ::
psyk ist offline   Mit Zitat antworten
Alt 17-03-2006, 13:08   #4 (permalink)
visitor
 
Registriert seit: Nov 2003
Ort: Stuttgart
Beiträge: 600
hallo,

funkts leider nicht.
hab's nochmal umgeschrieben...geht aber immer noch nicht ganz:

PHP-Code:
mainBtn._x prevMainBtn abstandMain;
            
mainBtn._y 100
            
var prevMainBtn:Number mainBtn.txt._width
neo14 ist offline   Mit Zitat antworten
Alt 17-03-2006, 13:24   #5 (permalink)
Pending…
 
Benutzerbild von psyk
 
Registriert seit: Jul 2002
Ort: Hamburg
Beiträge: 3.866
Kleiner Denkfehler meinerseits.
PHP-Code:
mainBtn._x 250+i*mainBtn._width
__________________
:: Warum einfach, wenn's auch kompliziert geht! ::

Geändert von psyk (17-03-2006 um 13:25 Uhr)
psyk ist offline   Mit Zitat antworten
Alt 17-03-2006, 13:28   #6 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Das muss so ungefähr aussehen:
PHP-Code:
var texte = ["hallo""du""na sowas aber auch""huch"];
for (var 
0x<texte.lengthx++) {
    var 
mc this.createEmptyMovieClip("mc"+xx);
    
mc.createTextField("txt"00000);
    
mc.txt.autoSize true;
    
mc.txt.text texte[x]+"  |  ";
    
mc._x last_mc._x+last_mc._width;
    
last_mc mc;

__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 18-03-2006, 12:20   #7 (permalink)
visitor
 
Registriert seit: Nov 2003
Ort: Stuttgart
Beiträge: 600
ok...ich hab's soweit hin bekommen.
doch nun hab ich ein neues problem...

ich habe als trenner zwischen die buttons ein " | " gesetzt.
wenn ich nun die farbe der buttons ändere, dann ändert sich natürlcih auch die farbe des trenners, was ja nicht sein sollte.

nun hab ich versucht das trenner-zeichen als grafik zwischen die einzelnen buttons zu schieben, doch das will nicht richtig funktionieren...

hier mal mein ansatz:

PHP-Code:
_root.createEmptyMovieClip("naviTrenner_mc"this.getNextHighestDepth());
  for (var 
k:Number 0k<mainItems.lengthk++) {
  var 
trenner:MovieClip _root.naviTrenner_mc.attachMovie('naviTrenner_mc''trenner'+kk);
  
trenner._y mainBtn._y;
  
trenner._x last_mc._x last_mc.txt._width abstandMain;

neo14 ist offline   Mit Zitat antworten
Alt 18-03-2006, 12:49   #8 (permalink)
Pending…
 
Benutzerbild von psyk
 
Registriert seit: Jul 2002
Ort: Hamburg
Beiträge: 3.866
Ich schätz mal du hast den Trnner nicht mit berücksichtigt.
PHP-Code:
_root.createEmptyMovieClip("naviTrenner_mc"this.getNextHighestDepth());
for (var 
i:Number 0i<mainItems.lengthi++) {
  var 
mainBtn:MovieClip _root.attachMovie('main_btn''main_btn'+ii);
  var 
trenner:MovieClip _root.naviTrenner_mc.attachMovie('naviTrenner_mc''trenner'+ii);
  
mainBtn._x last_mc._x last_mc._width lastTrenner._width;
  
trenner._x last_mc._x last_mc._width;
  
trenner._y mainBtn._y;
  
last_mc mainBtn
  
lastTrenner trenner;

__________________
:: Warum einfach, wenn's auch kompliziert geht! ::
psyk ist offline   Mit Zitat antworten
Alt 18-03-2006, 14:04   #9 (permalink)
visitor
 
Registriert seit: Nov 2003
Ort: Stuttgart
Beiträge: 600
hmm jeztzt liegen alle button übereinander...?

PHP-Code:
var abstandMain:Number 5;
//////////////////////////////////////
var xmlMenu:XML = new XML();
xmlMenu.ignoreWhite true;
xmlMenu.onLoad = function(success) {
    if (
success) {
        var 
mainItems this.firstChild.childNodes;
        
_root.createEmptyMovieClip("naviTrenner_mc"this.getNextHighestDepth());  
        for (var 
i:Number 0i<mainItems.lengthi++) {
            var 
mainBtn:MovieClip _root.createEmptyMovieClip("mainBtn"+ii); 
            var 
trenner:MovieClip _root.naviTrenner_mc.attachMovie('naviTrenner_mc''trenner'+ii); 
            
mainBtn._x last_mc._x last_mc.txt._width abstandMain lastTrenner._width abstandMain
            
trenner._x last_mc._x last_mc.txt._width
            
last_mc mainBtn;  
            
lastTrenner trenner
            
mainBtn._y 75;
            
trenner._y mainBtn._y
        }
    }

nicht vergessen, ich habe mainBtn.txt.autoSize = true; eingestellt, denn ich möchte ja dass sich die poistion de trenners an die länge des textfeldes anpasst
neo14 ist offline   Mit Zitat antworten
Alt 18-03-2006, 15:28   #10 (permalink)
notzucht
 
Benutzerbild von shorty
 
Registriert seit: Nov 2003
Ort: Potsdam
Beiträge: 2.939
verschoben - Bitte immer auf den Bereich achten, in welchen du postest
__________________
.
Flex in a week | Viertel vor halb nach Vollmond | ^^°.°^^ | Waltz with Bashir
.
shorty ist offline   Mit Zitat antworten
Alt 18-03-2006, 15:52   #11 (permalink)
Pending…
 
Benutzerbild von psyk
 
Registriert seit: Jul 2002
Ort: Hamburg
Beiträge: 3.866
So habs mal nachgebaut.
PHP-Code:
var mainItems:Array = ['fli''fla''foo''Dosenbier'];
_root.createEmptyMovieClip("naviTrenner_mc"this.getNextHighestDepth());
for (var 
i:Number 0i<mainItems.lengthi++)
{
    var 
mainBtn:MovieClip _root.attachMovie('main_btn''main_btn'+i,  _root.getNextHighestDepth(),{_y:75}); 
    
mainBtn.txt.autoSize true
    mainBtn
.txt.text mainItems[i];
    
mainBtn.txt.textColor 0xff0000;

    var 
trenner:MovieClip _root.naviTrenner_mc.attachMovie('naviTrenner_mc''trenner'+i_root.getNextHighestDepth(),{_y:mainBtn._y});
    
mainBtn._x last_mc._x last_mc._width lastTrenner._width;
    var 
last_mc:MovieClip mainBtn;
    
trenner._x last_mc._x last_mc._width
    var 
lastTrenner:MovieClip trenner;

__________________
:: Warum einfach, wenn's auch kompliziert geht! ::
psyk ist offline   Mit Zitat antworten
Alt 18-03-2006, 22:53   #12 (permalink)
visitor
 
Registriert seit: Nov 2003
Ort: Stuttgart
Beiträge: 600
danke...das geht soweit nun.

kann mir jetzt noch jemand bei der abwärtsbewegung der subnavi helfen?
hab mir gerade dieses bsp zusammen gebaut...doch geht es leider nicht.

PHP-Code:
var speed:Number 0.5;  
var 
subArr:Array = [];
//
function anzeige(ID) {
    
this.subMenu_mc.removeMovieClip();
    
movedown(ID);
    
this.createEmptyMovieClip("subMenu_mc"this.getNextHighestDepth());
    var 
subItems xmlMenu.firstChild.childNodes[ID].childNodes;
    for (var 
a:Number 0a<subItems.lengtha++) {
        var 
subBtn:MovieClip _root.subMenu_mc.attachMovie('sub_btn''sub_btn'+aa);
        
subArr[a].push(subBtn);
        
//
        
subBtn.txt.change(0);
        
subBtn._y = (subBtn._height abstandSub) * a;
        
subBtn._y += (subBtn._height abstandSub 115);
        
subBtn._x 20;
        
subBtn.txt.text subItems[a].attributes.item;
        
subBtn.namen subItems[a].attributes.item;
    }
}   
function 
movedown(p)  { 
    
dist subArr[p].length subArr[p][0]._height;  
    for (var 
i:Number 0i<subArr[p].lengthi++) { 
        
subArr[p][i].down(subArr[p][i].spos + (subArr[p][i]._height subArr[p][i]._height)); 
    } 

MovieClip.prototype.down = function(dist) { 
    
this.onEnterFrame = function() { 
        
Math.round(this._y) != Math.round(dist) ? this._y += (-this._y dist) * speed : (delete this.onEnterFramethis._y dist); 
    }


Geändert von neo14 (18-03-2006 um 22:54 Uhr)
neo14 ist offline   Mit Zitat antworten
Alt 18-03-2006, 23:11   #13 (permalink)
Pending…
 
Benutzerbild von psyk
 
Registriert seit: Jul 2002
Ort: Hamburg
Beiträge: 3.866
Hast denn speed vergessen.
PHP-Code:
MovieClip.prototype.down = function( distspeed )
{
    
this.onEnterFrame = function()
    {
    
Math.roundthis._y ) != Math.rounddist ) ? this._y += ( -this._y+dist )*speed : ( delete this.onEnterFramethis._y dist );
    }
};
// : Anweisung
_mc.down3000.5 ); 
__________________
:: Warum einfach, wenn's auch kompliziert geht! ::

Geändert von psyk (19-03-2006 um 11:28 Uhr) Grund: geschweiften Klammer hinzugefügt
psyk ist offline   Mit Zitat antworten
Alt 19-03-2006, 11:14   #14 (permalink)
visitor
 
Registriert seit: Nov 2003
Ort: Stuttgart
Beiträge: 600
nee...geht nicht
neo14 ist offline   Mit Zitat antworten
Alt 19-03-2006, 11:22   #15 (permalink)
Pending…
 
Benutzerbild von psyk
 
Registriert seit: Jul 2002
Ort: Hamburg
Beiträge: 3.866
Damit kann mal richtig was anfangen.
Ich hab es getestet und es geht.

Edit: Ok, Komando zurück, die geschweiften Klammer fehlten,
aber darauf hättest du ja selbst kommen können.
__________________
:: Warum einfach, wenn's auch kompliziert geht! ::

Geändert von psyk (19-03-2006 um 11:37 Uhr)
psyk 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 13:59 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele