Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 18-01-2005, 19:44   #1 (permalink)
tracer
 
Benutzerbild von andretti
 
Registriert seit: Jun 2004
Beiträge: 4.415
an profi-scripter---> please control

habe mir as mehr oder weniger autodidaktisch und mit einem anfängerkurs
beigebracht; und natürlich das meiste hier glernt(DANKE!);
habe nun mittlerweile einige fragen;grundlegende und tiefergehende;

zb:

wie kann ich gucken, ob das (ganz)untenstehende script eine performance-niete ist oder ganz ok?

was hat es mit der ,ich nenne es mal "pseudo-if abfrage" auf sich:

ActionScript:
  1. MC_eins._xscale <= 0 ? MC_zwei._x += 15 :0;
  2.  
  3. /* eigentlich behirne ich alles, nur was hat es zu schluss mit dem doppelpunkt und der null zu tun?*/

ActionScript:
  1. var hours = myDate.getHours()<10 ? "0"+myDate.getHours() : myDate.getHours();
  2. /* was hat es hier  genau auf sich? kann das jemand evt erläutern?*/


und jetzt der hammer:

untenstehendes script;

ist das ein tohuwabohu oder einigermaßen geordnet?

ist da was zuviel?

besonderes augenmerk bitte auf den prototype legen.....
geht bitte schonungslos mit mir um, aber bleibt sachlich!

ich hoffe, das war jeza net all zu viel


ActionScript:
  1. stop();
  2. ////////////********Tabulator-deactivate******///////////
  3. MovieClip.prototype.tabEnabled = false;
  4. ///////////**********header********/////////
  5. wert1 = .1;
  6. MC_waage.MC_balken.onEnterFrame = function() {
  7.     this._rotation += wert1;
  8.     this._rotation>=8 ? wert1=-.25 : 0;
  9.     this._rotation<=-8 ? wert1=.25 : 0;
  10. };
  11. //////////*******picHolder-MC*********////////////
  12. MC_mainHolder.loadMovie("home.swf");
  13. /////////*********active-MC********//////////////////
  14. MC_active.T_active.autoSize = "left";
  15. MC_active.T_active.text = "Home";
  16. _root.MC_activeLine2._x = 540+_root.MC_active.T_active._width;
  17. /////////////******linkdefinition******///////////////////////
  18. MovieClip.prototype.link = function(pagename, input) {
  19.     if (work_mc != this) {
  20.         _root.MC_activeLine._xscale = 0;
  21.         _root.MC_activeLine2._xscale = 0;
  22.         this._alpha = 65;
  23.         this.T_linkname.text = pagename;
  24.         this.T_linkname.textColor = "0x999999";
  25.         this.onRollOver = function() {
  26.             this.T_linkname.textColor = "0x333333";
  27.             this.onEnterFrame = function() {
  28.                 this._alpha<=100 ? this._alpha += 12 : 0;
  29.             };
  30.         };
  31.     }
  32.     this.onRollOut = function() {
  33.         if (work_mc != this) {
  34.             this.T_linkname.textColor = "0x999999";
  35.             this.onEnterFrame = function() {
  36.                 this._alpha>=65 ? this._alpha -= 12 : 0;
  37.             };
  38.         }
  39.     };
  40.     this.onPress = function() {
  41.         if (work_mc != this) {
  42.             _global.work_mc.T_linkname.textColor = "0x999999";
  43.             _root.MC_activeLine2._x = 540+_root.MC_active._width;
  44.             _root.MC_activeLine.onEnterFrame = function() {
  45.                 this._xscale<=100 ? this._xscale += 5 : 0;
  46.                 this._xscale == 100 ? delete this.onEnterFrame : 0;
  47.                 /////***das T_active befüllen***/////
  48.                 this._xscale == 100 ? _root.MC_active.T_active.text=pagename : 0;
  49.                 _root.MC_activeLine2._x = 540+_root.MC_active._width;
  50.                 _root.MC_activeLine2.onEnterFrame = function() {
  51.                     this._parent.MC_activeLine._xscale == 100 ? this._xscale += 5 : 0;
  52.                     this._xscale == 100 ? delete _root.MC_activeLine2.onEnterFrame : 0;
  53.                 };
  54.             };
  55.         }
  56.         _global.work_mc = this;
  57.         _root.MC_mainHolder.unloadMovie();
  58.         _root.MC_mainHolder.loadMovie(input);
  59.         _root.MC_activeLine._xscale = 0;
  60.         _root.MC_activeLine2._xscale = 0;
  61.         this.T_linkname.textColor = "0x333333";
  62.         _root.MC_active.T_active.text = "";
  63.     };
  64. };
  65. ////////////////////////*******linkaufrufe*********//////////////////////////////////
  66. MC_home.link("Home", "home.swf");
  67. MC_kanzlei.link("Kanzlei");
  68. MC_aktuell.link("Aktuell");
  69. MC_service.link("Service");
  70. MC_jung.link("Jungunternehmer");
  71. MC_formulare.link("Formulare");
  72. MC_newsletter.link("Newsletter");
  73. MC_kontakt.link("Kontakt", "formmailer.swf");
  74. /////////////*********Copyright********////////////
  75. MC_copyright.T_copyright.autoSize = "left";
  76. MC_copyright.onPress = function() {
  77.     getURL("http://www.small-pages.at", "_blank");
  78. };
  79. //////////********Datum***********////////////
  80. _root.createTextField("T_datum", 3, 20, 520, 200, 20);
  81. T_datum.selectable = false;
  82. timeText = new TextFormat();
  83. timeText.font = "Verdana";
  84. timeText.align = "left";
  85. timeText.color = 0xFFFFFF;
  86. timeText.size = 11;
  87. T_datum.setNewTextFormat(timeText);
  88. function showDate() {
  89.     time = setInterval(function () {
  90.         var myDate = new Date();
  91.         var year = myDate.getFullYear()<10 ? "0"+myDate.getFullYear() : myDate.getFullYear();
  92.         var date2 = myDate.getDate()<10 ? "0"+myDate.getDate() : myDate.getDate();
  93.         var month = (myDate.getMonth())+1;
  94.         var month = month<10 ? "0"+month : month;
  95.         var hours = myDate.getHours()<10 ? "0"+myDate.getHours() : myDate.getHours();
  96.         var minutes = myDate.getMinutes()<10 ? "0"+myDate.getMinutes() : myDate.getMinutes();
  97.         var seconds = myDate.getSeconds()<10 ? "0"+myDate.getSeconds() : myDate.getSeconds();
  98.         var milliseconds = myDate.getMilliseconds<10 ? "0"+myDate.getMilliseconds() : myDate.getMilliseconds();
  99.         T_datum.text = date2+"."+month+"."+""+year+"°|°"+hours+":"+minutes+":"+seconds;
  100.     }, 10);
  101. }
  102. showDate();
__________________
Viola per Sempre
Alle Angaben ohne Gewehr!
trace your open mind in variables !
andretti
ActionScript Dictionary
andretti ist offline   Mit Zitat antworten
Alt 18-01-2005, 20:38   #2 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Hallo,

ich greife mir mal das einfachste raus

Code:
var hours = myDate.getHours()<10 ? "0"+myDate.getHours() : myDate.getHours();
heist:
Du prüfst ob die Anzahl der Stunden unter 10 ist( myDate.getHours()<10 ), wenn ja, dann wird der linke Wert vor dem Doppelpunkt der Variable hours zugewiesen und wenn aber diese Überprüfung "false" liefert, wird der Variable hours der Wert rechts vom Doppelpunkt zugewiesen.
Hat eigentlich nur den Grund, das wenn es kleiner 10 ist, ja die variable eine "einstellige Zahl" geliefert bekommen würde, da dies aber nicht in deinem Beispiel gewollt ist, wird einfach noch ne '0' vorne angefügt (sieht schöner aus).

Und somit kannste Dir sicherlich deine erste Zuweisung auch jetzt selber erklären.

Frage mich aber, wieso du das in deinem Script verwendest, wenn Du offenbar nicht weist was es macht.
__________________
ERROR: Signature is too large

Geändert von rendner[i] (18-01-2005 um 20:40 Uhr)
rendner[i] ist offline   Mit Zitat antworten
Alt 18-01-2005, 20:46   #3 (permalink)
helpQLODhelp
 
Benutzerbild von bokel
 
Registriert seit: Feb 2002
Ort: Köln
Beiträge: 8.505
Ok, dann nehme ich das zweite

ActionScript:
  1. MC_eins._xscale <= 0 ? MC_zwei._x += 15 :0;

Das ist ein typischer Anfängerfehler. Hier wird eine Syntax, die eigentlich für Ausdrücke (also etwas, das einen Wert liefert) gedacht ist, als Ersatz für if benutzt. Das Problem dabei ist, dass der else zweig (also :0) eigentlich überflüssig ist, aber aus Syntaxgründen trotzdem aufgeführt werden muss. Wenn du sowas in einer Schleife machst, wird 0 immer umsonst ausgeführt.
Richtig muss es so heissen:
ActionScript:
  1. if( MC_eins._xscale <= 0) MC_zwei._x += 15;

mfg r.

Geändert von bokel (18-01-2005 um 22:17 Uhr)
bokel ist offline   Mit Zitat antworten
Alt 18-01-2005, 21:12   #4 (permalink)
tracer
 
Benutzerbild von andretti
 
Registriert seit: Jun 2004
Beiträge: 4.415
Zitat:
Zitat von rendner[i]
Hallo,
Frage mich aber, wieso du das in deinem Script verwendest, wenn Du offenbar nicht weist was es macht.
@ rendner:

herzlichen dank für deine erklärung;
sag mir, wie ein monitor funktioniert(komplett), und ich erkläre dir jede function in AS....

das ist ein komplettes datums-script, welches ich BEI DEN RICHTIGEN stellen umgeändert habe; weil ich schon weiß, was ich kann, und was nicht...und wenn ich etwas nicht weiß, gibt es gottseidank euch....danke!

deswegen die fragen oben...

bei schleifen verwende ich die fragezeichen-doppelpunkt version nicht...
weil ich schleifen no net so richtig intus habe....

@ bokel:

danke für die erklärung;

ohne schleife ist diese version aber ,sagen wir mal, "bequemer", nicht richtig, aber nicht falsch, oder?
__________________
Viola per Sempre
Alle Angaben ohne Gewehr!
trace your open mind in variables !
andretti
ActionScript Dictionary
andretti ist offline   Mit Zitat antworten
Alt 18-01-2005, 21:23   #5 (permalink)
brand new user
 
Benutzerbild von RustyCake
 
Registriert seit: May 2002
Ort: Laimbach 6 1/2
Beiträge: 16.884
Zitat:
Zitat von andretti
was hat es mit der ,ich nenne es mal "pseudo-if abfrage" auf sich:
Dann geb ich auch noch ein wenig Senf bei!!!
Ist eigentlich eine verkürzte Forom von "if-else"!!

bsp.
ActionScript:
  1. var aloa = true;
  2. var rusty = true;
  3. aloa != rusty ? trace("verkürzt shit") : trace("verkürzt aloa");
  4. if (aloa != rusty) {
  5.     trace("normal shit");
  6. } else {
  7.     trace("normal aloa");
  8. }
Ist beides das selbe, nur nicht gleich
__________________
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muß erst gehen lernen"
RustyCake ist offline   Mit Zitat antworten
Alt 18-01-2005, 21:34   #6 (permalink)
tracer
 
Benutzerbild von andretti
 
Registriert seit: Jun 2004
Beiträge: 4.415
@ rusty cake:

thx;

bin durch dich auf meine wahrscheinlich größte lücke und evt eines der mächtigsten tools bei flash gestolpert:

trarraaa: "trace"

des werd ich mir auch noch anschauen müssen....

by the way:

wenn ich eine schriftart verwende, die der user net hat, wie binde ich dann den text in flash ein, damit der das so sieht, wie ich?
__________________
Viola per Sempre
Alle Angaben ohne Gewehr!
trace your open mind in variables !
andretti
ActionScript Dictionary
andretti ist offline   Mit Zitat antworten
Alt 18-01-2005, 21:57   #7 (permalink)
squirlish
 
Benutzerbild von ChriZi
 
Registriert seit: Mar 2004
Ort: CH
Beiträge: 492
embedFonts = true

oder was in der art ...

aber ich denke man muss dan noch styles definieren und den font über die bibliothek attachen...

schau dir einfach mal embedfonts oder font oder so in der hilfe an!
__________________
SQUIRLART|PHOTOGRAPHY
ChriZi ist offline   Mit Zitat antworten
Alt 18-01-2005, 22:23   #8 (permalink)
helpQLODhelp
 
Benutzerbild von bokel
 
Registriert seit: Feb 2002
Ort: Köln
Beiträge: 8.505
Zitat:
Zitat von andretti
ohne schleife ist diese version aber ,sagen wir mal, "bequemer", nicht richtig, aber nicht falsch, oder?
Sie ist nicht falsch, in dem Sinne dass es nicht funktioniert. Aber es ist einfach das falsche Werkzeug am falschen Platz. Es ist nicht kürzer, es ist schlechter lesbar und es erzeugt auch noch mehr Bytecode. Also für mich genügend Argumente, if zu benutzen, wenn ich if brauche. Der Fall den rendner[i] oben erklärt hat , ist die korrekte Anwendung dafür. Also immer dann, wenn du im if Teil und im else Teil eines if, ein und derselben Variable einen Wert zuweist. Hier sind nochmal zwei kleine Beispiele bei denen der Einsatz von ?: Sinn macht. Hier sieht man sehr deutlich, dass einerseits der Code um einiges kürzer wird und andererseits das Ergebnis von ?: weiter benutzt wird.

ActionScript:
  1. var wahr = true;
  2. if( wahr){
  3.    var x = 1;
  4. } else {
  5.    var x = 2;
  6. }
  7.  
  8. var x = wahr ? 1 : 2;
  9.  
  10.  
  11. function myFunc( x){
  12.     trace("myFunc " + x);
  13. }
  14.  
  15. var wahr = true;
  16. if( wahr){
  17.    myFunc( 1)
  18. } else {
  19.    myFunc( 2);
  20. }
  21.  
  22. myFunc( wahr ? 1 : 2);

mfg r.

Geändert von bokel (19-01-2005 um 06:46 Uhr)
bokel ist offline   Mit Zitat antworten
Alt 19-01-2005, 10:31   #9 (permalink)
tracer
 
Benutzerbild von andretti
 
Registriert seit: Jun 2004
Beiträge: 4.415
oki doki

und wie sieht es mit struktur des Codes und cpu-belastung aus?

kann i des wo eruiren?
__________________
Viola per Sempre
Alle Angaben ohne Gewehr!
trace your open mind in variables !
andretti
ActionScript Dictionary
andretti 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 02:57 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele