| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Oct 2004
Beiträge: 37
| Frage bez. Klassenaufbau!?
hi, habe eine frage bez. klassenvariablen. zb. eine ImagePlayer klasse: class ImagePlayer (besteht aus) -> new TeaserPic (für die full_view) -> new ArrThumbnail (thumbnails) -> .... das problem: die ImagePlayer klasse ist stark verschachtelt, und besteht aus vielen klassen instanzen. momentan bin ich gezwungen, klassenvariablen von anderen klassen, im "ImagePlayer" zu deklarieren. (komme auf ca 20+ eigenschaften im ImagePlayer, alle von den anderen klassen) gibt es da eine andere lösungen, für klassenvariablen, wie zb: -> eine UIclass ... *as2 oop neuling* lg lu Geändert von le-loup (13-06-2007 um 18:58 Uhr) |
| | |
| | #2 (permalink) |
| Neuer User Registriert seit: Oct 2004
Beiträge: 37
| Nachtrag
hier ein beispiel, von einer Array Klasse: Code: *NACHTRAG*
hier eine einfache ArrayKlasse als beispiel:
import site.ThumbNail;
class site.ArrThumbNail {
private var temp_ThumbNail:ThumbNail;
private var mc_ThumbNail:ThumbNail;
private var mc_Holder:MovieClip;
//
private var arr_thumb:Array;
private var arr_type:String;
private var thumb_row:Number;
private var arr_x:Number;
private var arr_y:Number;
//pic
private var pic_x:Number;
private var pic_y:Number;
private var pic_w:Number;
private var pic_h:Number;
private var pic_col:Number;
//button
private var btn_pos_x:Number;
private var btn_pos_y:Number;
private var btn_x:Number;
private var btn_y:Number;
private var btn_w:Number;
private var btn_h:Number;
private var btn_col:Number;
private var btn_act_w:Number;
private var btn_act_h:Number;
//label
private var txt_x:Number;
private var txt_y:Number;
private var txt_w:Number;
private var txt_h:Number;
private var txt_embed:Boolean;
private var txt_font:String;
private var txt_size:Number;
private var txt_col:Number;
//
public function ArrThumbNail(target:MovieClip, arr:Array, type:String, x:Number, y:Number, depth:Number) {
this.arr_type = type;
this.arr_thumb = arr;
this.mc_Holder = target.createEmptyMovieClip("mc_ThumbHolder", depth);
this.mc_Holder._x = x;
this.mc_Holder._y = y;
}
public function drawArr():Void {
//
//
var inX:Number = 0;
var inY:Number = 0;
for (var i = 0; i<this.arr_thumb.length; i++) {
//--
this.mc_ThumbNail = new ThumbNail(this.mc_Holder, "detail", i, "zum projekt_"+i, i);
this.mc_ThumbNail.setPicPath("thumb.jpg");
this.mc_ThumbNail.setPos(this.arr_x*inX, this.arr_y*inY);
this.mc_ThumbNail.getPicInstance().setPicStyle(this.pic_x, this.pic_y, this.pic_w, this.pic_h, this.pic_col);
this.mc_ThumbNail.getButtonInstance().setButtonStyle(this.btn_x, this.btn_y, this.btn_w, this.btn_h, this.btn_col);
this.mc_ThumbNail.getButtonInstance().setButtonPos(this.btn_pos_x, this.btn_pos_y);
this.mc_ThumbNail.getButtonInstance().setActiveSize(this.btn_act_w, this.btn_act_h);
this.mc_ThumbNail.getButtonInstance().setTxtStyle(this.txt_x, this.txt_y, this.txt_w, this.txt_h, this.txt_embed, this.txt_font, this.txt_size, this.txt_col);
this.mc_ThumbNail.drawThumbNail();
//--
switch (this.arr_type) {
case "multirow" :
if (inX<this.thumb_row) {
inX++;
} else {
inX = 0;
inY++;
}
break;
case "horizontal" :
inX++;
break;
case "vertical" :
inY++;
break;
}
}
}
public function setPicBtnStyle(type:String, x:Number, y:Number, w:Number, h:Number, col:Number):Void {
this[type+"_x"] = x;
this[type+"_y"] = y;
this[type+"_w"] = w;
this[type+"_h"] = h;
this[type+"_col"] = col;
}
public function setButtonPos(x:Number, y:Number):Void {
this.btn_pos_x = x;
this.btn_pos_y = y;
}
public function setActiveSize(w:Number, h:Number):Void {
this.btn_act_w = w;
this.btn_act_h = h;
}
public function setTxtStyle(x:Number, y:Number, w:Number, h:Number, embed:Boolean, fontType:String, fontSize:Number, fontCol:Number):Void {
this.txt_x = x;
this.txt_y = y;
this.txt_w = w;
this.txt_h = h;
this.txt_embed = embed;
this.txt_font = fontType;
this.txt_size = fontSize;
this.txt_col = fontCol;
}
public function setThumbPos(x:Number, y:Number):Void {
this.arr_x = x;
this.arr_y = y;
}
public function setMultirow(row:Number):Void {
this.thumb_row = row;
}
public function setFilter(arr:Array):Void {
this.mc_Holder.removeMovieClip();
this.arr_thumb = arr;
this.drawArr();
}
} da ich erst eine "ThumbNail" instance in dieser methode mache, habe ich vorher keine möglichkeit, methoden der Teaser klasse aufzurufen (da keine instance im ArrTeaser konstruktor gemacht wird). deshalb bin ich gezwungen (w.o beschrieben) variablen derThumbNail Klasse zu definieren und auch die methoden!? taugt mir nicht. würde mich um einen ansatz freuen, wie man klassenvariablen am besten verwaltet. lg ps.: hoffe ich habe es annähernd verständlich erklärt |
| | |
| | #3 (permalink) |
| Perverted Hermit Registriert seit: Mar 2004 Ort: Delmenhorst
Beiträge: 12.898
|
Schreib extra Klassen für den Text, die Thumbnails und Picture etc in eigene Klassen aus und verwalte dort ihre entsprechenden Propertys. Die super-Klasse greift dann via get()- und set()-Methoden auf die Attribute zu, wenn die Werte brauchst oder verändern willst.
|
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |