Flashhilfe.de - Flash Community

sprite.buttonMode in Klasse (private funcion) [Flash 10]

 


AntwortenRegistrieren Seite1  

Solon#1
Benutzerbild von Solon
Beiträge: 57
Registriert: Aug 2006

03.05.2011, 15:00

Hallo,

ich habe eben versucht bei verschiedenen Sprites innerhalb einer Klasse den buttonMode = true zu setzen. Das passiert in private functions bevor ich die Sprites per addChild auf die Bühne hole.

Ist das generell nicht möglich oder was könnte falsch gelaufen sein, dass der Effekt nicht eintritt?
Genauso funktioniert es nicht, den Sprites einen MouseEventListener zu geben :/
Schlagwörter: buttonMode, Klasse, sprite
Werbung
Beiträge: 0
Registriert: Feb 2016


cedddy#2
Benutzerbild von cedddy
Beiträge: 572
Registriert: May 2007

03.05.2011, 15:14

zeig doch mal deine function generell sollte es gehen
Bitte keine pn´s wegen irgendwelchen fragen zu Threads, dafür gibt es sie ja schließich
Solon#3
Benutzerbild von Solon
Beiträge: 57
Registriert: Aug 2006

Themenautor/in

03.05.2011, 15:50

Haha nicht ganz so einfach ^^ die Klasse ist was größer jedenfalls sieht die betroffene Funktion so aus:

ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
private function drawImgCont():void {
 
           this["imgCont" + this.nummer] = new Sprite();
           this["imgCont" + this.nummer].graphics.clear();
           this["imgCont" + this.nummer].graphics.beginFill(this.imgContBackColor);
           this["imgCont" + this.nummer].graphics.drawRect( 0, 0, this.imgContWidth, this.imgContHeight);
           this["imgCont" + this.nummer].graphics.endFill();
           this["imgCont" + this.nummer].filters = [ new DropShadowFilter() ];
           this["imgCont" + this.nummer].addChild(this.Bild);
           this["imgCont" + this.nummer].x = 25+(125*this.spaltenMulti);
           this["imgCont" + this.nummer].y = 25+100*(this.nummer-(this.bilderProSpalte*this.spaltenMulti));
           this["imgCont"+this.nummer].name = "imgCont"+this.nummer;
           this["imgCont"+this.nummer].buttonMode = true;
           this.IVStage.addChild(this["imgCont"+this.nummer]);
           this.contAlpha = new Tween(this["imgCont"+this.nummer], "alpha", None.easeOut, 0, 1, 0.5, true);
           this.contTween = new Tween(this["imgCont"+this.nummer], "x", Elastic.easeOut, this["imgCont"+this.nummer].x-100, 25+(125*this.spaltenMulti), 2, true);
           this.contAlpha.addEventListener(TweenEvent.MOTION_FINISH, tweenFertig);
        }


Die komplette Klasse (nur ohne die Zeile mit dem buttonMode) befindet sich bereits hier im Forum unter folgendem Link: http://www.flashhilfe.de/forum/actionscript-3-0/verschiedene-wiedergabe-meines-scripts-in-vorschau-swf-und-html-291900-291900.html
cedddy#4
Benutzerbild von cedddy
Beiträge: 572
Registriert: May 2007

03.05.2011, 19:15

das ganze prinzip mit this["imgCont"+this.nummer] ist nicht wirklich schön und benutzt man auch eher nicht ich denke das darin der fehler sein wird mach es lieber so das du die gesamten bilder in einen array packst und dann per array und nummer darauf zugreifst
Bitte keine pn´s wegen irgendwelchen fragen zu Threads, dafür gibt es sie ja schließich
Werbung
Beiträge: 0
Registriert: Feb 2016


Solon#5
Benutzerbild von Solon
Beiträge: 57
Registriert: Aug 2006

Themenautor/in

04.05.2011, 07:46

Ja der Sinndahinter ist, den Containern in die die Bilder geladen werden, Namen zu geben damit ich sie hinterher mit removeChild(getChildByName(name)) wieder entfernen kann.
cedddy#6
Benutzerbild von cedddy
Beiträge: 572
Registriert: May 2007

04.05.2011, 08:47

das kannst du auch per array machen in dem du der sprite dann einen nanmen gibst z.b. myArray[2].name = "sprite2"; danach kannst dus aufrufen mit this.getChildByName was du warscheinlich gerade auch machst ...
Bitte keine pn´s wegen irgendwelchen fragen zu Threads, dafür gibt es sie ja schließich
Solon#7
Benutzerbild von Solon
Beiträge: 57
Registriert: Aug 2006

Themenautor/in

04.05.2011, 12:54

ok ich werde das mal versuchen, dankeschön schonmal :) Ich berichte dann ob es so funktioniert hat
Solon#8
Benutzerbild von Solon
Beiträge: 57
Registriert: Aug 2006

Themenautor/in

04.05.2011, 13:04

Ja, es funktioniert alles super auf diese Weise :) Vielen Dank für den super Tipp!


In der Klasse selbst:
ActionScript:
1var imgCont:Array = new Array();


In der betroffenen Funktion:
ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
private function drawImgCont():void {
 
           this.imgCont[this.nummer] = new Sprite();
           this.imgCont[this.nummer].graphics.clear();
           this.imgCont[this.nummer].graphics.beginFill(this.imgContBackColor);
           this.imgCont[this.nummer].graphics.drawRect( 0, 0, this.imgContWidth, this.imgContHeight);
           this.imgCont[this.nummer].graphics.endFill();
           this.imgCont[this.nummer].filters = [ new DropShadowFilter() ];
           this.imgCont[this.nummer].addChild(this.Bild);
           this.imgCont[this.nummer].x = 25+(125*this.spaltenMulti);
           this.imgCont[this.nummer].y = 25+100*(this.nummer-(this.bilderProSpalte*this.spaltenMulti));
           this.imgCont[this.nummer].name = "imgCont"+this.nummer;
           this.imgCont[this.nummer].buttonMode = true;
           this.IVStage.addChild(this.imgCont[this.nummer]);
           this.contAlpha = new Tween(this.imgCont[this.nummer], "alpha", None.easeOut, 0, 1, 0.5, true);
           this.contTween = new Tween(this.imgCont[this.nummer], "x", Elastic.easeOut, this.imgCont[this.nummer].x-100, 25+(125*this.spaltenMulti), 2, true);
           this.contAlpha.addEventListener(TweenEvent.MOTION_FINISH, tweenFertig);
        }
Geändert von Solon am 04.05.11 um 13:05 Uhr

AntwortenRegistrieren Seite1  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.

 
Ähnliche Beiträge zum Thema
Partner Webseiten: art-and-law.de  Mediengestalter.info   php-resource.de   phpforum.de   phpwelt.de   Pixelio.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Hier Werben   Impressum
© 1999-2019 Sebastian Wichmann - Flashhilfe.de