Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 02-12-2004, 20:11   #1 (permalink)
squirlish
 
Benutzerbild von ChriZi
 
Registriert seit: Mar 2004
Ort: CH
Beiträge: 492
dynamischer schatten

ich hab ne frage...
weiss jemand wie man am besten ein schatten eines fensters (box) macht und der sich dann automatisch anpasst beim verändern der fenstergrösse?

ich habe mir mal überlegt das fenster einfach zu duplizieren, schwarz zu färben und dann mit onEnterFrame sich immer anzupassen...
und das etwa 4 mal mit jeweils anderen alpha werten...

jedoch würden dann die ecken.... einen eckigen schatten haben,... was aber nicht mein wunsch ist

nunja... die frage ist eigentlich nur... ob jemand ne schlaue idee hat oder schon ne gute lösung kennt ...

danke vielmals
__________________
SQUIRLART|PHOTOGRAPHY
ChriZi ist offline   Mit Zitat antworten
Alt 02-12-2004, 21:50   #2 (permalink)
Flash & TYPO3
 
Registriert seit: Oct 2003
Ort: Bayern
Beiträge: 2.700
Ich würde auch die Box dublizieren. Aber den Problem mit den Ecken versteh ich nicht
__________________
Mediendesign-Student
johanness ist offline   Mit Zitat antworten
Alt 02-12-2004, 21:56   #3 (permalink)
*hello new world
 
Benutzerbild von nalin
 
Registriert seit: Jan 2004
Ort: sauerland
Beiträge: 1.788
bei dynamischen schatten ist mir spontan pageflip eingefallen.

http://www.flashforum.de/forum/searc...earchid=321351

gruß,
nalin
nalin ist offline   Mit Zitat antworten
Alt 02-12-2004, 22:11   #4 (permalink)
.
 
Registriert seit: May 2003
Ort: bayern
Beiträge: 1.117
also ich hab da mal was vorbereitet, guckst du:
ActionScript:
  1. MovieClip.prototype.drawRahmen = function(c,a) {
  2.     trace('drawRahmen called');
  3.     this.lineStyle(1,col,15);
  4.     this.moveTo(startX,startY);
  5.     this.beginFill(c,a) 
  6.     this.lineTo(startX+breite,startY);
  7.     this.lineTo(startX+breite,startY+hoehe);
  8.     this.lineTo(startX,startY+hoehe);
  9.     this.lineTo(startX,startY);
  10.     this.endFill()
  11.     updateAfterEvent();
  12.     //drawShaddow();
  13. };
  14. MovieClip.prototype.drawRect = function(x1, y1, w, h,c,a,lthick,lc,la) {
  15.     this.lineStyle(lthick,lc,la);
  16.     this.moveTo(x1,y1)
  17.     this.beginFill(c,a)
  18.     this.lineTo(x1+w,y1)
  19.     this.lineTo(x1+w,y1+h)
  20.     this.lineTo(x1,y1+h)
  21.     this.lineTo(x1,y1)
  22.     this.endFill()
  23. };
  24.  
  25. MovieClip.prototype.blurredRect = function(x, y, width, height, blur, color, alpha) {
  26.     this.lineStyle();
  27.     var f = [];
  28.     var sum = 0;
  29.     for (var i = 1; i<blur+1; i++) {
  30.         f[i-1] = i*i;
  31.         sum += f[i-1];
  32.     }
  33.     var newfactor= 2;
  34.     var counter = 40;
  35.     do {
  36.         factor=newfactor
  37.         var b = 0;
  38.         for (var i = 0; i<=blur; i++) {
  39.             var ftemp = (f[i]*(factor*alpha)/sum)/100;
  40.             b = b*(1-ftemp)+ftemp;
  41.         }
  42.         counter--;
  43.         newfactor *= alpha/(100*b);
  44.     } while ((counter>0) && (Math.abs(100*b-alpha)>.5));
  45.     for (var i = 0; i<=blur; i++) {
  46.         f[i] *= (factor*alpha)/sum;
  47.     }
  48.     for (var i = 0; i<=blur; i++) {
  49.         this.beginFill(color, f[i]);
  50.         this.roundRect(1+(x+i)-blur/2, 1+(y+i)-blur/2, x+width-i+blur/2-1, y+height-i+blur/2-1, blur-(i*2/3));
  51.         this.endFill();
  52.     }
  53. };
  54. MovieClip.prototype.roundRect = function(x1, y1, x2, y2, r) {
  55.     r = Math.min(Math.abs(r), Math.min(Math.abs(x1-x2), Math.abs(y1-y2))/2);
  56.     var f = 0.707106781186548*r;
  57.     var a = 0.588186525863094*r;
  58.     var b = 0.00579432557070009*r;
  59.     var ux = Math.min(x1, x2);
  60.     var uy = Math.min(y1, y2);
  61.     var lx = Math.max(x1, x2);
  62.     var ly = Math.max(y1, y2);
  63.     this.moveTo(ux+r, uy);
  64.     var cx = lx-r;
  65.     var cy = uy+r;
  66.     this.lineTo(cx, uy);
  67.     this.curveTo(lx-a, uy+b, cx+f, cy-f);
  68.     this.curveTo(lx-b, uy+a, lx, uy+r);
  69.     cy = ly-r;
  70.     this.lineTo(lx, cy);
  71.     this.curveTo(lx-b, ly-a, cx+f, cy+f);
  72.     this.curveTo(lx-a, ly-b, lx-r, ly);
  73.     cx = ux+r;
  74.     this.lineTo(cx, ly);
  75.     this.curveTo(ux+a, ly-b, cx-f, cy+f);
  76.     this.curveTo(ux-b, ly-a, ux, ly-r);
  77.     cy = uy+r;
  78.     this.lineTo(ux, cy);
  79.     this.curveTo(ux+b, uy+a, cx-f, cy-f);
  80.     this.curveTo(ux+a, uy+b, ux+r, uy);
  81. };
  82.  
  83. function update(){
  84.     rahmen.clear()
  85.     rahmen.blurredRect(10, 10, breite, hoehe, 10, 0x333333, 85);
  86.     rahmen.drawRahmen(0xFFFFFF,100);
  87. }
  88.  
  89. function init() {
  90.     breite = 100;
  91.     hoehe = 75;
  92.     rahmen = this.createEmptyMovieClip("rahmen",1);
  93.     update();
  94. }
  95. init();

einfach in erstes frame packen und gucken, das mit dem runden schatten stammt keinesfalls von mir, blick ich auch nicht im detail ist aber einfach gut, hab ich meiner sete auch verwendet...

viel spaß...
__________________
[mooseMash]
mooseMash ist offline   Mit Zitat antworten
Alt 02-12-2004, 22:25   #5 (permalink)
*hello new world
 
Benutzerbild von nalin
 
Registriert seit: Jan 2004
Ort: sauerland
Beiträge: 1.788
mit den runden schatten das kommt meines wissens automatisch mit lineto. wenn man eine normale linie zeichnet ist diese auch abgerundet.

@mooseMash
schöne sachen haste auf deiner seite!
nalin ist offline   Mit Zitat antworten
Alt 02-12-2004, 23:24   #6 (permalink)
squirlish
 
Benutzerbild von ChriZi
 
Registriert seit: Mar 2004
Ort: CH
Beiträge: 492
danke vielmals für die antworten

@ mooseMash... genau sowas hab ich gesucht ...
danke!...

@ nalin du verwechselst glaub lineTo mit curveTo


schönen tag euch noch!
__________________
SQUIRLART|PHOTOGRAPHY
ChriZi 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 05:37 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele