Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 22-10-2005, 13:13   #1 (permalink)
Meep!
 
Registriert seit: Sep 2005
Beiträge: 146
variablen an einen mc per onEnterFrame = function übergegeben?

ActionScript:
  1. WinObject.onMouseDown = function()
  2.         {
  3.             if(this._xmouse<xsize-20 && this._ymouse<20 && this._xmouse>0 && this._ymouse>0)
  4.             {...
WinObject ist eine variable für einen MC der in der klasse erstellt wurde...nun möchte ich in der function() auf diese variable wieder zugreifen können!

wie geht das ?

danke
pixartist ist offline   Mit Zitat antworten
Alt 22-10-2005, 13:14   #2 (permalink)
nky
Bontempi Punk
 
Benutzerbild von nky
 
Registriert seit: Dec 2001
Ort: Dtld/Pfalz
Beiträge: 4.185
this ?
nky ist offline   Mit Zitat antworten
Alt 22-10-2005, 13:18   #3 (permalink)
Meep!
 
Registriert seit: Sep 2005
Beiträge: 146
Zitat:
Zitat von nky
this ?
ja...ok ich poste mal alles:
ActionScript:
  1. class window
  2. {
  3.     public var WinName:String;
  4.     public var WinDepth:Number;
  5.     private var WinObject:MovieClip;
  6.     public function window(WindowName:String,depth:Number)
  7.     {
  8.         _root.createEmptyMovieClip(WindowName,depth);
  9.         WinName = WindowName;
  10.         WinDepth = depth;
  11.         WinObject = _root[WinName];
  12.     }
  13.     public function deleteWindow()
  14.     {
  15.         WinObject.removeMovieClip();
  16.     }
  17.     public function drawWindow(xpos,ypos,xsize,ysize, bordColor, bgColor, titleBg, titleTextColor, closeColor:Number)
  18.     {
  19.         !bordColor?bordColor = 0xffffff:0;
  20.         !bgColor?bgColor = 0xcccccc:0;
  21.         !titleBg?titleBg = 0xaaaaaa:0;
  22.         !titleTextColor?titleTextColor = 0x000000:0;
  23.         !closeColor?closeColor = 0xff4444:0;
  24.         WinObject._x = xpos;
  25.         WinObject._y = ypos;
  26.         WinObject.createTextField(WinName+"titel",WinDepth+100,1,0,xsize-22,20);
  27.         WinObject[WinName+"titel"].text = WinName;
  28.         WinObject[WinName+"titel"].textColor = titleTextColor;
  29.         WinObject.onEnterFrame = function()
  30.         {
  31.             {...}
  32.             if(this.isDragged)
  33.             {
  34.                 this._x = _root._xmouse-this.xdist;
  35.                 this._y = _root._ymouse-this.ydist;
  36.             }
  37.         };
  38.         WinObject.onMouseDown = function()
  39.         {
  40.             if(this._xmouse<xsize-20 && this._ymouse<20 && this._xmouse>0 && this._ymouse>0)
  41.             {
  42.                 this.isDragged = true;
  43.                 this.xdist = _root._xmouse-this._x;
  44.                 this.ydist = _root._ymouse-this._y;
  45.             }
  46.             if(this._xmouse>xsize-20 && this._ymouse<20 && this._xmouse<xsize && this._ymouse>0)
  47.             {
  48.                 this.removeMovieClip(); //<-------------------------------------------GEHT NICHT! wird nicht removed!
  49.             }
  50.         }
  51.         WinObject.onReleaseOutside = function()
  52.         {
  53.             this.isDragged = false;
  54.         }
  55.         WinObject.onRelease = function()
  56.         {
  57.             this.isDragged = false;
  58.         }
  59.         WinObject.onMouseUp = function()
  60.         {
  61.             this.isDragged = false;
  62.         }
  63.     }
  64. }

siehe comment!
pixartist ist offline   Mit Zitat antworten
Alt 22-10-2005, 13:26   #4 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Hi!
Das this bezieht sich nicht auf das WinObject, da sich onMouseDown auf den ganzen Film bezieht und nicht auf ein Objekt.
Wenn sich also die Koordinaten auf das Fenster beziehen sollen (gilt auch für removeMovieClip()), dann musst du die this gegen WinObject austauschen.
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 22-10-2005, 13:36   #5 (permalink)
Meep!
 
Registriert seit: Sep 2005
Beiträge: 146
Zitat:
Zitat von Der Frager
Hi!
Das this bezieht sich nicht auf das WinObject, da sich onMouseDown auf den ganzen Film bezieht und nicht auf ein Objekt.
Wenn sich also die Koordinaten auf das Fenster beziehen sollen (gilt auch für removeMovieClip()), dann musst du die this gegen WinObject austauschen.
ja aber winobject ist ja in der on mouse down nicht mehr definiert! deswegen muss ichs irgendwie übergeben
pixartist ist offline   Mit Zitat antworten
Alt 22-10-2005, 13:38   #6 (permalink)
Meep!
 
Registriert seit: Sep 2005
Beiträge: 146
MAAAAn
ActionScript:
  1. WinObject.WinObject = WinObject;
  2.         WinObject.onMouseDown = function()
  3.         {
  4.             if(this._xmouse<xsize-20 && this._ymouse<20 && this._xmouse>0 && this._ymouse>0)
  5.             {
  6.                 this.isDragged = true;
  7.                 this.xdist = _root._xmouse-this._x;
  8.                 this.ydist = _root._ymouse-this._y;
  9.             }
  10.             if(this._xmouse>xsize-20 && this._ymouse<20 && this._xmouse<xsize && this._ymouse>0)
  11.             {
  12.                 trace(WinObject);
  13.                 WinObject.removeMovieClip();
  14.             }
  15.         }
trace gibt den richtigen namen aus aber es wird nix removed!!!!

Geändert von pixartist (22-10-2005 um 13:43 Uhr)
pixartist ist offline   Mit Zitat antworten
Alt 22-10-2005, 13:47   #7 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Auf welcher Tiefe liegt denn der MC? Vielleicht geht's ja so:
ActionScript:
  1. this.WinObject.swapDepths(1000)
  2. removeMovieClip(this.WinObject);
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 22-10-2005, 15:08   #8 (permalink)
Meep!
 
Registriert seit: Sep 2005
Beiträge: 146
Zitat:
Zitat von Der Frager
Auf welcher Tiefe liegt denn der MC? Vielleicht geht's ja so:
ActionScript:
  1. this.WinObject.swapDepths(1000)
  2. removeMovieClip(this.WinObject);
hmm ich glaube jetzt gehts... danke
pixartist 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 09:36 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele