Zurück   Flashforum > Flash > ActionScript > Softwarearchitektur und Entwurfsmuster

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 08-07-2003, 09:43   #1 (permalink)
[+]
 
Benutzerbild von André Michelle
 
Registriert seit: Dec 2002
Ort: cologne
Beiträge: 2.271
Property: _skew

Kleine Häppchen für Zwischendurch :o)

ActionScript:
  1. var set_skew = function ( __skew ) {
  2.  
  3.     var v = __skew.v, h = __skew.h;
  4.  
  5.     var sin = Math.sin, cos = Math.cos, rad = Math.PI / 180;
  6.     var sin_45 = sin( 45 * rad );
  7.  
  8.     this._child._rotation = -45;
  9.  
  10.     var _rot = this._rotation = ( h + v ) / 2 + 45;
  11.  
  12.     var h_rad = h * rad;
  13.     var v_rad = v * rad;
  14.  
  15.     var sin_rot45 = sin( _rot * rad ) / sin_45;
  16.  
  17.     this._xscale = 100 * ( cos( h_rad ) + sin( v_rad ) ) / sin_rot45;
  18.     this._yscale = 100 * ( sin( h_rad ) + cos( v_rad ) ) / sin_rot45;
  19.  
  20.     this.__skew = __skew;
  21.  
  22. }
  23.  
  24. var get_skew = function () {
  25.  
  26.     return this.__skew;
  27.  
  28. }
  29.  
  30. MovieClip.prototype.attachSkewClip = function ( symbolID , name , depth , initObject ) {
  31.  
  32.     var parent = this.createEmptyMovieClip ( name , depth );
  33.  
  34.     parent._child = parent.attachMovie ( symbolID , "_embedded" , 0 );
  35.  
  36.     parent.addProperty( "_skew" , get_skew , set_skew );
  37.  
  38.     for ( var p in initObject ) parent[ p ] = initObject[ p ];
  39.  
  40.     return parent;
  41.  
  42. }
  43.  
  44. // -- usage
  45.  
  46. var clip = this.attachSkewClip ( "image" , "image_instance" , 1 , { _x: 200 , _y: 60 } );
  47.  
  48. clip._skew = { v: 0 ,h: 45 };
  49.  
  50. trace ( clip._skew.v );
  51. trace ( clip._skew.h );


Verhält sich wie in das Skewing in der Entwicklerumgebung.
Man könnte noch die Methode und die Helfer verstecken, etc.
Ausserdem wäre es nett, _height, _width, _rotation,_xscale,_yscale so zu überschreiben, dass sie wieder funktionieren :p
Vieleicht macht ja jemand weiter...
__________________
aM

blog | laboratory | tonfall | processing

Audiotool.com
André Michelle ist offline   Mit Zitat antworten
Alt 08-07-2003, 10:58   #2 (permalink)
www.kruesch.de
 
Benutzerbild von flory
 
Registriert seit: Feb 2002
Beiträge: 1.057
für sin_45 kannst Du auch das eingebaute Math.SQRT1_2 verwenden.

ansonsten: nett, erinnert mich irgendwie an die ersten Skripts zur Darstellung von
Dreiecken in Flash5, als es noch kein Drawing API gab

Interessant finde ich hierbei mal wieder das "Phänomen" Closures: ohne die
würde das Skript auf anderen Timelines nämlich nicht funktionieren. Aber tatsächlich
bleibt der Wertebereich erhalten (die Variablen get_skew und set_skew).
__________________
www.planet-xaml.net

Geändert von flory (08-07-2003 um 11:11 Uhr)
flory ist offline   Mit Zitat antworten
Alt 08-07-2003, 11:07   #3 (permalink)
Achim Math.PI
 
Benutzerbild von bloba
 
Registriert seit: Jul 2001
Ort: cool Colonia
Beiträge: 11.642
Thumbs up

nettes teil!
__________________
gruß bloba

2 x onkel² b_d
bloba ist offline   Mit Zitat antworten
Alt 08-07-2003, 11:39   #4 (permalink)
Neuer User
 
Benutzerbild von :: RK ::
 
Registriert seit: Jan 2002
Ort: Umgebung Stuttgart
Beiträge: 5.412
hi,

sieht ja hoch interessant aus das Script, jedoch hab ich grad voll den Nullblick.
Was soll der Sinn bzw. der Zweck dieses Scripts sein

Und:
Was soll das "Phänomen" Closures, wie flory es schreibt, sein.
__________________
Das Glück im Leben hängt von den guten Gedanken ab, die man hat.

Easing_Equations / Flash Kontaktformular / FlashPlugin W3C konform / Nützliche Beiträge zu FAQs
:: RK :: ist gerade online   Mit Zitat antworten
Alt 08-07-2003, 11:59   #5 (permalink)
www.kruesch.de
 
Benutzerbild von flory
 
Registriert seit: Feb 2002
Beiträge: 1.057
du kannst damit einen MovieClip neigen, ähnlich wie im "Transformieren"-
Dialog in der Autorenumgebung.
Mit Closures ist gemeint, daß Variablen, die eine Funktion (in dem Fall die Funktion,
die dem Prototyp zugewiesen wird) referenziert bei Ausführung der Funktion
erhalten bleiben, obwohl sie im Wertebereich in dem die Funktion ausgeführt
wird gar nicht mehr vorhanden sind.
Wenn Du das Skript auf einer anderen Timeline ausführst, gibt es dort die Variablen
get_skew und set_skew ja gar nicht, die Funktion holt sich die Variablen aus dem Wertebereich,
in dem sie ursprünglich definiert wurde.
Das macht einem das Leben leichter, ohne das man´s merkt. Leider ist das
imho auch einer der Gründe, warum Actionscript so langsam ist.
__________________
www.planet-xaml.net
flory ist offline   Mit Zitat antworten
Alt 08-07-2003, 12:33   #6 (permalink)
Neuer User
 
Benutzerbild von :: RK ::
 
Registriert seit: Jan 2002
Ort: Umgebung Stuttgart
Beiträge: 5.412
danke flory,
habs zwar nicht ganz gerafft aber egal, werd schon noch dahinter kommen.

hab letztens das hier gepostest, ist das mit den Closures hier das selbe ???
attache Animation spielt nicht ab ... ?
__________________
Das Glück im Leben hängt von den guten Gedanken ab, die man hat.

Easing_Equations / Flash Kontaktformular / FlashPlugin W3C konform / Nützliche Beiträge zu FAQs
:: RK :: ist gerade online   Mit Zitat antworten
Alt 15-07-2003, 13:58   #7 (permalink)
FlashPlayerPro
 
Benutzerbild von flashin vedder
 
Registriert seit: Dec 2001
Ort: BERLIN-NEUKÖLLN
Beiträge: 60
ich frage mich warum macromedia das noch nicht implementiert hat .

na ja gibt ja genug freiwillige flash forscher
__________________
dubfix
flashin vedder ist offline   Mit Zitat antworten
Alt 15-07-2003, 14:34   #8 (permalink)
Neuer User
 
Registriert seit: Jun 2001
Ort: Zürich
Beiträge: 1.776
@rk, vielleicht erzähl ich hier müll,

aber das stichwort "closure" scheint mir mit dem "scope" von eigenschaften und variablen zu tun zu haben. zum thema "variablen-reichweite" (wie übersetzt man scope? blickfeld?) hab ich das entsprechende kapitel von Colin moock anzubieten, das es als beispielkapitel zu seinem flash5- defguide als pdf gibt:


http://www.moock.org/asdg/samples/moockasdg-ch02.pdf

ausserdem:

http://www.debreuil.com/docs/ch01_Objects.htm
hier besonders ab "object lifetimes"
fresh ist offline   Mit Zitat antworten
Alt 26-08-2005, 19:51   #9 (permalink)
Neuer User
 
Registriert seit: Aug 2005
Beiträge: 8
Hallo,

kann mir jemand zu dem oberen Code ein Flashfile schicken, damit ich das ganze gut nachvollziehen kann. Ich bin mit actionscript nicht der allerbeste.

Vielen Dank, das wäre super nett.
mr.franz 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 15:41 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele