| Vorige onderwerp :: Volgende onderwerp |
ErnieCool
Evilgamer
 
Berichten: 6637 Rating: 116 |
Geplaatst: Za Jan 17, 2009 7:14 pm Onderwerp: Actionscript 2.0 OOP |
|
|
|
Iemand hier die verstand heeft van Object Oriented actionscript programming.
Voor mijn school project moet ik een deel programeren maar ik kom er niet echt uit en heb er echt al uren aan gewerkt, maar het wil niet lukken.
Dus mocht er iemand verstand van hebben, ben je bereid mij te helpen, ikben zelfs bereid er wat voor te betalen. Wat er moet gebeuren is opzich niet zo heel veel.
ErnieCool bezit de volgende gaming platformen:  |
|
| Terug naar boven |
|
|
WeSs0
Elite
 
Berichten: 1267 Rating: 12 |
Geplaatst: Za Jan 17, 2009 7:41 pm Onderwerp: |
|
|
|
Zeg het maar
WeSs0 bezit de volgende gaming platformen:  |
|
| Terug naar boven |
|
|
ErnieCool
Evilgamer
 
Berichten: 6637 Rating: 116 |
Geplaatst: Za Jan 17, 2009 7:48 pm Onderwerp: |
|
|
|
ik moet voor het project een Object oriented color calculator maken, met 6 kleurmodellen en een color picker.
Mijn deel is de kleurmodellen R'G'B', YCbCr en Yxy en de color picker.
alles moet berekend worden vanuit het XYZ panel.
Een projectlid van mij heeft het RGB panel al werkend gekregen, inclusief Out of Gammut weergave.
probleem is, voor R'G'B' en YCbCr heb ik geen directe formule naar XYZ dus die moeten in de class eerst nog omgerekend worden ook.
Hieronder staat de code voor werkend RGB panel.
Ik heb al een werkende color picker, maar die moet dus object oriented gemaakt worden.
Denk je dat je iets voor me kan doen. En ik ben echt zo wanhopig dat ik er voor wil betalen als je me met alles kan helpen ... ik zit een beetje in tijdnood ook xD.
Code voor de RGB panel.
| Code: | class RGBPanel extends MovieClip {
private var slider1:MovieClip;
private var slider2:MovieClip;
private var slider3:MovieClip;
private var tekst1:TextField;
private var tekst2:TextField;
private var tekst3:TextField;
private var OutOfGamut:MovieClip;
private var ClipboardCopier:MovieClip;
private var tmp_X:Number = 0;
private var tmp_Y:Number = 0;
private var tmp_Z:Number = 0;
private var tmp_R:Number = 0;
private var tmp_G:Number = 0;
private var tmp_B:Number = 0;
private var R_min:Number = -1;
private var R_max:Number = 256;
private var G_min:Number = -1;
private var G_max:Number = 256;
private var B_min:Number = -1;
private var B_max:Number = 256;
private function onEnterFrame() {
if (String(Selection.getFocus()) != "null") {
if ( (String((Selection.getFocus())) == ("_level0.RGBPaneel.tekst1")) && (Number(tekst1.text)<= R_max) && (Number(tekst1.text)>=R_min) ) {
slider1._y = (((-Number(tekst1.text)) /2.55)+50);
setChanged();
}
if ( (String((Selection.getFocus())) == ("_level0.RGBPaneel.tekst2")) && (Number(tekst2.text)<= G_max) && (Number(tekst2.text)>=G_min) ) {
slider2._y = (((-Number(tekst2.text)) /2.55)+50);
setChanged();
}
if ( (String((Selection.getFocus())) == ("_level0.RGBPaneel.tekst3")) && (Number(tekst3.text)<= B_max) && (Number(tekst3.text)>=B_min) ) {
slider3._y = (((-Number(tekst3.text)) /2.55)+50);
setChanged();
}
}
}
public function copyToClipboard() {
System.setClipboard("De gekozen RGB-kleurcode: R=" +tekst1.text +" G=" +tekst2.text +" B=" +tekst3.text );
}
public function RGBPanel() {
OutOfGamut._visible = false
}
public function Deselect() {
Selection.setFocus(null);
}
public function setChanged():Void {
_level0.model.kleurmodel = "RGB";
OutOfGamut._visible = false;
_level0.model.RGB_S1 = slider1._y;
_level0.model.RGB_S2 = slider2._y;
_level0.model.RGB_S3 = slider3._y;
tmp_R = ( ((-slider1._y)+50) / 100 );
tmp_G = ( ((-slider2._y)+50) / 100 );
tmp_B = ( ((-slider3._y)+50) / 100 );
if ( tmp_R > 0.04045 ) { tmp_R = (Math.pow(( ( tmp_R + 0.055 ) / 1.055 ), 2.4)) * 100;}
else { tmp_R = (tmp_R / 12.92) * 100;}
if ( tmp_G > 0.04045 ) { tmp_G = (Math.pow(( ( tmp_G + 0.055 ) / 1.055 ), 2.4)) * 100;}
else { tmp_G = (tmp_G / 12.92) * 100;}
if ( tmp_B > 0.04045 ) { tmp_B = (Math.pow(( ( tmp_B + 0.055 ) / 1.055 ), 2.4)) * 100;}
else { tmp_B = (tmp_B / 12.92) * 100;}
tmp_X = (Math.round(tmp_R * 0.4124 + tmp_G * 0.3576 + tmp_B * 0.1805));
tmp_Y = (Math.round(tmp_R * 0.2126 + tmp_G * 0.7152 + tmp_B * 0.0722));
tmp_Z = (Math.round(tmp_R * 0.0193 + tmp_G * 0.1192 + tmp_B * 0.9505));
_root.model.setXYZ_X( (-tmp_X /2) +50);
_root.model.setXYZ_Y (-tmp_Y +50);
_root.model.setXYZ_Z( (-tmp_Z /2) +50);
tekst1.text = String(Math.round(((-slider1._y)+50)*2.55));
tekst2.text = String(Math.round(((-slider2._y)+50)*2.55));
tekst3.text = String(Math.round(((-slider3._y)+50)*2.55));
}
public function onValueChanged(eventObject:Object):Void {
//Sliderwaarden omvormen naar XYZ en toepassen op een temporary_XYZ
if (_level0.model.kleurmodel == "CP") {
slider1._y = (_level0.model.RGB_S4)
slider2._y = (_level0.model.RGB_S5)
slider3._y = (_level0.model.RGB_S6)
tekst1.text = String(Math.round(((-slider1._y)+50)*2.55));
tekst2.text = String(Math.round(((-slider2._y)+50)*2.55));
tekst3.text = String(Math.round(((-slider3._y)+50)*2.55));
}
else if (_level0.model.kleurmodel != "RGB") {
if (String((Number(eventObject.XYZ_X))) != "NaN") { tmp_X = ((eventObject.XYZ_X*(-1)) +50) *2;}
if (String((Number(eventObject.XYZ_Y))) != "NaN") { tmp_Y = ((eventObject.XYZ_Y*(-1)) +50); }
if (String((Number(eventObject.XYZ_Z))) != "NaN") { tmp_Z = ((eventObject.XYZ_Z*(-1)) +50) *2;}
tmp_R = ((tmp_X / 100) * 3.2406 + (tmp_Y / 100) * -1.5372 + (tmp_Z / 100) * -0.4986);
tmp_G = ((tmp_X / 100) * -0.9689 + (tmp_Y / 100) * 1.8758 + (tmp_Z / 100) * 0.0415);
tmp_B = ((tmp_X / 100) * 0.0557 + (tmp_Y / 100) * -0.2040 + (tmp_Z / 100) * 1.0570);
if ( tmp_R >= 0.0031308 ) { tmp_R = ((1.055 * Math.pow( tmp_R , ( 1 / 2.4 ) ) - 0.055)) * 255;}
else { tmp_R = (12.92 * tmp_R) * 255;}
if ( tmp_G >= 0.0031308 ) { tmp_G = ((1.055 * Math.pow( tmp_G , ( 1 / 2.4 ) ) - 0.055)) * 255;}
else { tmp_G = (12.92 * tmp_G) * 255;}
if ( tmp_B >= 0.0031308 ) { tmp_B = ((1.055 * Math.pow( tmp_B , ( 1 / 2.4 ) ) - 0.055)) * 255;}
else { tmp_B = (12.92 * tmp_B) * 255;}
OutOfGamut._visible = false
//Toepassen en OutOfGamut maken van [R]GB
if ( ( tmp_R <= R_max) && ( tmp_R >= R_min) ){ slider1._y = -(((tmp_R)/ 2.55) -50 ); tekst1.text = String(Math.round(tmp_R));}
else if (tmp_R <= R_max) { OutOfGamut._visible = true; slider1._y = 50; tekst1.text = String("OoG");}
else if (tmp_R >= R_min) { OutOfGamut._visible = true; slider1._y = -50; tekst1.text = String("OoG");}
//Toepassen en OutOfGamut maken van R[G]B
if ( ( tmp_G <= G_max) && ( tmp_G >= G_min) ){ slider2._y = -(((tmp_G)/ 2.55) -50 ); tekst2.text = String(Math.round(tmp_G));}
else if (tmp_G <= G_max) { OutOfGamut._visible = true; slider2._y = 50; tekst2.text = String("OoG");}
else if (tmp_G >= G_min) { OutOfGamut._visible = true; slider2._y = -50; tekst2.text = String("OoG");}
//Toepassen en OutOfGamut maken van RG[B]
if ( ( tmp_B <= B_max) && ( tmp_B >= B_min) ){ slider3._y = -(((tmp_B)/ 2.55) -50 ); tekst3.text = String(Math.round(tmp_B));}
else if (tmp_B <= B_max) { OutOfGamut._visible = true; slider3._y = 50; tekst3.text = String("OoG");}
else if (tmp_B >= B_min) { OutOfGamut._visible = true; slider3._y = -50; tekst3.text = String("OoG");}
}
}
} |
ErnieCool bezit de volgende gaming platformen:  |
|
| Terug naar boven |
|
|
WeSs0
Elite
 
Berichten: 1267 Rating: 12 |
Geplaatst: Za Jan 17, 2009 7:55 pm Onderwerp: |
|
|
|
Als je die color picker is post, kijk ik of ik tijd heb om het oop te maken. Denk er wel aan dat ik zelf niet veel tijd heb, ik weet wel dat Jeroen aardig ervaring met flash heeft.
Overgens een link voor YcbCr, http://en.wikipedia.org/wiki/YCbCr.
Staat heel veel informatie over hoe en wat, zelfs berekeningen.
WeSs0 bezit de volgende gaming platformen:  |
|
| Terug naar boven |
|
|
ErnieCool
Evilgamer
 
Berichten: 6637 Rating: 116 |
|
| Terug naar boven |
|
|
|
Geplaatst: Za Jan 17, 2009 7:59 pm Onderwerp: |
|
|
|
Ik heb niet veel verstand van actionscripting, standaard dingen als motion tweening etc, wat de meeste wel kunnen, dat kan ik wel, maar niet zulke geavanceerde dingen.
|
|
| Terug naar boven |
|
|
ErnieCool
Evilgamer
 
Berichten: 6637 Rating: 116 |
Geplaatst: Za Jan 17, 2009 8:00 pm Onderwerp: |
|
|
|
Mjah, ik vind het echt belachelijk dat ze dit van ons verwachten in het 1e jaar na paar maanden les.
Sommige projectgroepen komen er helemaal niet uit xD.
ErnieCool bezit de volgende gaming platformen:  |
|
| Terug naar boven |
|
|
Brandts
Elite
 
Berichten: 1399 Rating: 53 |
Geplaatst: Zo Jan 18, 2009 4:41 pm Onderwerp: |
|
|
|
Ik heb hier helemaal geen verstand van maar bij ons op school kregen we ook projecten die eigenlijk veel te moeilijk waren. Zo konden ze zien welke de goede en de mindere leerlingen waren.
Brandts bezit de volgende gaming platformen:  |
|
| Terug naar boven |
|
|
Yorick
Godlike
 
Berichten: 3501 Rating: 17 |
Geplaatst: Zo Jan 18, 2009 4:53 pm Onderwerp: |
|
|
|
| Brandts schreef: | | Ik heb hier helemaal geen verstand van maar bij ons op school kregen we ook projecten die eigenlijk veel te moeilijk waren. Zo konden ze zien welke de goede en de mindere leerlingen waren. |
wil toch totaal niets zeggen.. als je geld hebt ga je er gewoon mee naar een programmeur en als je geen geld hebt ben je mooi gebuist...
Yorick bezit de volgende gaming platformen:  |
|
| Terug naar boven |
|
|
Brandts
Elite
 
Berichten: 1399 Rating: 53 |
Geplaatst: Zo Jan 18, 2009 5:56 pm Onderwerp: |
|
|
|
Nee das waar, al vind ik het zelf wat ver gaan om iemand te betalen voor jouw huiswerk. Als niemand het snapt is het toch geen schande dat je het zelf ook niet snapt.
Bij ons op school was het trouwens niet zo makkelijk om iemand te vinden die onze projecten kon oplossen 
Brandts bezit de volgende gaming platformen:  |
|
| Terug naar boven |
|
|