Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 13-11-2003, 10:25   #1 (permalink)
Neuer User
 
Registriert seit: Jun 2003
Beiträge: 29
attachMovie nur einmal?

Hi, folgender code
ActionScript:
  1. var subnavlayer = frame.createEmptyMovieClip("subnavlayer", 4);
  2.     for (var i in _global.subnavi){
  3.          if (_global.subnavi[i]["p_id"]==partLevel){
  4.              // alle Unter-Elemente die zu unserem Element gehören rausfischen
  5.             var subitem = subnavlayer.createEmptyMovieClip("subitem"+subnavicount, depth++);
  6.             var pngback = subitem.attachMovie("buttonBG","pngback"+i, 2);
  7.            
  8.             pngback._alpha=50;
  9.             pngback._x = pngback._width/2 - 4;
  10.             pngback._y = pngback._height/4 + subnavicount*pngback._height;
  11.             pngback.myName = _global.subnavi[i]["desc"];
  12.             pngback.onRollOver = function () {
  13.                     this._alpha=100;
  14.                     trace (this.myName + "Tiefe: " + getDepth(this) + " mit x/y " + this._x+ "/" + this._y);
  15.             }
  16.             pngback.onRollOut = function () {
  17.                     this._alpha=50;
  18.                
  19.             }
  20.            
  21.             subnavlayer["subitem"+subnavicount].createTextField ("txt" , 3, 0, subnavicount*26, 80,20);
  22.             subnavlayer["subitem"+subnavicount].txt.text=_global.subnavi[i]["desc"];
  23.             subnavlayer["subitem"+subnavicount].txt.setTextFormat(_global.naviTextFormat);
  24.             subnavlayer["subitem"+subnavicount].txt.selectable=false;
  25.             subnavlayer._visible=false;
  26.             subnavicount++;
  27.          }
  28.      }
Aber irgendwie erzeugt mir Flash nur das jeweils erste Element für den partLevel, alle anderen scheinen da zu sein (der rollover löst aus) aber getDepth liefert -16384 als Level, die Positionen stimmen allerdings. Es ist so, als wenn alle nach dem ersten Clip attachten MCs unsichtbar wären - sonderbar ... sieht jemand meinen Fehler? Ich find ihn grad net
matiz ist offline   Mit Zitat antworten
Alt 13-11-2003, 11:07   #2 (permalink)
.--. .. ..- ...
 
Benutzerbild von pius
 
Registriert seit: Jul 2002
Ort: munich
Beiträge: 1.345
'subnavlayer._visible=false;' ?
__________________
one out of many
pius ist offline   Mit Zitat antworten
Alt 13-11-2003, 11:19   #3 (permalink)
*warg*
 
Registriert seit: May 2002
Ort: Berlin
Beiträge: 261
bin mir nicht ganz sicher ob ich dein problem richtig verstanden und erfasst habe.

var subitem = subnavlayer.createEmptyMovieClip("subitem"+subnavi count, depth++);
var pngback = subitem.attachMovie("buttonBG","pngback"+i, 2);


hab ich was verpasst ? ... "depth" ist hier doch eine variable und wird vorher nicht definiert... achja .. braucht man ja in MX noch nicht *g* ... ok
und :
er soll "pngback" immer auf ebene 2 laden ? du scheinst ja "pngback" öfter zu attachen. falls ja, kann er ja wohl kaum alle elemente auf ebene 2 setzten.

zum

trace (this.myName + "Tiefe: " + getDepth(this) + " mit x/y " + this._x+ "/" + this._y);

versuchs mal mit

trace (_root.subnavlayer.subitem.pngback._depth)

übrigens ist der depth-wert , den du getraced bekommst. der depth wert von "_root" .. attach mal n movieClip mit einem `noch kleineren depth-wert ( mal sehenswert ).

aber erlichgesagt blick ich bei diesem code nicht so ganz durch :-/

Gruß Tuffy
__________________
"nimm dir das leben - es gehört dir!"
"die realität versucht mich einzuholen - doch ich bin schneller !"

Geändert von Tuffyfant (13-11-2003 um 11:22 Uhr)
Tuffyfant ist offline   Mit Zitat antworten
Alt 13-11-2003, 11:26   #4 (permalink)
Neuer User
 
Registriert seit: Jun 2003
Beiträge: 29
hi,
depth ist schon vorher definiert, ich wollte nur den relevanten teil des codes posten.
mit _root kann ich leider nicht tracen, da ich den code a) include und b) das ganze aus einem objekt heraus erfolgt.
an dem level von pngback werd ich nochmal schrauben, komisch nur dass es geht sobald ich keine textfelder erzeugen lasse :/
matiz ist offline   Mit Zitat antworten
Alt 13-11-2003, 11:30   #5 (permalink)
.--. .. ..- ...
 
Benutzerbild von pius
 
Registriert seit: Jul 2002
Ort: munich
Beiträge: 1.345
Zitat:
er soll "pngback" immer auf ebene 2 laden ? du scheinst ja "pngback" öfter zu attachen. falls ja, kann er ja wohl kaum alle elemente auf ebene 2 setzten.
soweit ich's verstehe, wird mit
ActionScript:
  1. var pngback = subitem.attachMovie("buttonBG","pngback"+i, 2);
nur einmal attached, und zwar an :
ActionScript:
  1. var subitem = subnavlayer.createEmptyMovieClip("subitem"+subnavicount, depth++);

und die heissen wahrscheinlich alle unterschiedlich ...'+subnavicount' ...


was sagt er denn damit?:
ActionScript:
  1. trace (this.myName + "Tiefe: " + this.getDepth() + " mit x/y " + this._x+ "/" + this._y);
__________________
one out of many
pius ist offline   Mit Zitat antworten
Alt 13-11-2003, 12:13   #6 (permalink)
Neuer User
 
Registriert seit: Jun 2003
Beiträge: 29
subnavicount ist ein zähler, der sich erhöht, die subitems heissen damit zB subitem0...subitem4 etc.
mit dem veränderten trace kommt jetzt folgendes
"Impressum Tiefe: 70 mit x/y 41/6.25
Links Tiefe: 71 mit x/y 41/31.25
Kontakt Tiefe: 72 mit x/y 41/56.25"

das haut auch soweit hin. ich hab jetzt gerade noch einmal alle verwendeten ebenen im film sortiert, und genügend abstände gelassen sowie jeder buttonhintergrund wird auf eine eigene ebene gezogen. aber keine veränderung. :/
die relevanten geänderten stellen im code wie folgt
ActionScript:
  1. if (_global.subnavi[i]["p_id"]==partLevel){
  2. // ...
  3. var subitem = subnavlayer.createEmptyMovieClip("subitem"+subnavicount, 50 + subnavicount);
  4.             var pngback = subitem.attachMovie("buttonBG","pngback", 70 + subnavicount);
  5. // rest gleich
  6. subitem.createTextField ("subtext" , 90 + subnavicount, 0, subnavicount*26, 80,20);
  7. // ...
  8. subnavicount++;
  9. }
matiz ist offline   Mit Zitat antworten
Alt 13-11-2003, 13:48   #7 (permalink)
.--. .. ..- ...
 
Benutzerbild von pius
 
Registriert seit: Jul 2002
Ort: munich
Beiträge: 1.345
schön ... aber genau weiss ich immer noch nicht, was du für ein problem hast .... und nachbauen lässt sich das teil mit dem codeauszug ja auch schlecht ... (array ...)


kannst das noch mal genauer beschreiben ..?
__________________
one out of many
pius ist offline   Mit Zitat antworten
Alt 13-11-2003, 14:49   #8 (permalink)
Neuer User
 
Registriert seit: Jun 2003
Beiträge: 29
Unhappy

ja okay, ich erzeuge knöpfe (subitem) die bestandteil des navigationslayers (subnavlayer) sind. der knof an sich besteht aus zwei ebenen, dem hintergrund (subitem.pngback) und dem text (subitem.txt). nun wird mir allerdings, wenn ich in meiner schleife bin, nur der hintergrund des ersten knopfes angezeigt, der der weiteren erscheint nicht. sobald ich keine textfelder mehr anzeigen lasse, klappt alles, so dass es für mich da einen zusammenhang gab. wie dieser ist hab ich allerdings nicht rausgefunden, denn an den ebenen oder benennungen scheint es nicht zu liegen. ich hänge noch einmal mein ganzes objekt ran:
ActionScript:
  1. MovieClip.prototype.createPart = function(partName, partLevel, partImage,desk_x,desk_y, partText) {
  2.     var frame = this.createEmptyMovieClip(partName,partLevel+10);
  3.     AsBroadcaster.initialize(frame);
  4.     var vorschau = frame.createEmptyMovieClip("vorschau",partLevel+20);
  5.     var normal   = frame.createEmptyMovieClip("normal",partLevel+30);
  6.     // subnavi für diesen part erzeugen, eingeblendet wird sie später onRollOver
  7.     var subnavicount=0;
  8.     var depth=1;
  9.     var subnavlayer = frame.createEmptyMovieClip("subnavlayer", partLevel + 40);
  10.     for (var i in _global.subnavi){
  11.          if (_global.subnavi[i]["p_id"]==partLevel){
  12.              // alle Unter-Elemente die zu unserem Element gehören rausfischen
  13.             var subitem = subnavlayer.createEmptyMovieClip("subitem"+subnavicount, 50 + subnavicount);
  14.             var pngback = subitem.attachMovie("buttonBG","pngback"+i, 70 + subnavicount);
  15.             // var subtext = subitem.createEmptyMovieClip("subtext", 90 + subnavicount);
  16.             pngback._alpha=50;
  17.             pngback._x = pngback._width/2 - 4;
  18.             pngback._y = pngback._height/4 + subnavicount*pngback._height;
  19.             pngback.myName = _global.subnavi[i]["desc"];
  20.             pngback.onRollOver = function () {
  21.                     this._alpha=100;
  22.                     trace (this.myName + " Tiefe: " + this.getDepth() + " mit x/y " + this._x+ "/" + this._y);
  23.             }
  24.             pngback.onRollOut = function () {
  25.                     this._alpha=50;
  26.             }
  27.  
  28.           subitem.createTextField ("subtext" , 90 + subnavicount, 0, subnavicount*26, 80,20);
  29.             subitem.subtext.text=_global.subnavi[i]["desc"];
  30.             subitem.subtext.setTextFormat(_global.naviTextFormat);
  31.             subitem.subtext.selectable=false
  32.             subnavlayer._visible=false;
  33.             subnavicount++;
  34.          }
  35.      }
  36.    
  37.     vorschau.onRollOut = function(){
  38.             normal.fadeIt(0,-10);
  39.             //subnavlayer._visible=false; // in setup-desktop verlagert
  40.     }
  41.        
  42.     vorschau.onRollOver= function(){
  43.         frame.broadcastMessage("onStatusMessage", partText)
  44.         frame.broadcastMessage("onPartOver", partName);
  45.         //subnavlayer._visible=true; // in setup-desktop verlagert
  46.     }
  47.  
  48.     vorschau.onPress = function(){
  49.         frame.broadcastMessage("onPartClick",partName, partLevel);
  50.     }
  51. };
matiz ist offline   Mit Zitat antworten
Alt 13-11-2003, 16:04   #9 (permalink)
.--. .. ..- ...
 
Benutzerbild von pius
 
Registriert seit: Jul 2002
Ort: munich
Beiträge: 1.345
wenn du bei dem Befehl:

ActionScript:
  1. subitem.subtext.text=_global.subnavi[i]["desc"];

mit 'subtext' auf die vorher gesetzte Variable 'subtext' (in der die referenz auf den mc steht / jetzt gerade auskommentiert ...)
zugreifen willst ...

solltest du glaub ich besser:

ActionScript:
  1. subitem[subtext].text=_global.subnavi[i]["desc"];


schreiben ....



... oder seh' ich dat falsch ?
__________________
one out of many
pius ist offline   Mit Zitat antworten
Alt 14-11-2003, 09:16   #10 (permalink)
Neuer User
 
Registriert seit: Jun 2003
Beiträge: 29
Lightbulb

das ist so schon richtig.
lustig aber dass jetzt alles geht. und zwar nachdem ich für meine textfelder die über den buttons liegen die schrift eingebettet habe. das ist nicht wirklich lustig, mein ich
matiz 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:19 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele