Ich bin sehr neu zu Flash und ActionScript 3. Ich habe viel darüber gelesen und dies ist auch mein erster Schritt zur objektorientierten Programmierung.Schreib ich AS3 richtig?
Bisher habe ich eine Anwendung mit einem Login-Button erstellt, das ist alles. Ich würde jedoch gerne wissen, welche Dinge ich falsch mache oder anders machen sollte (oder besser). Ich bin mit Adobe Flex Builder 3.
Die Hauptactionscript-Datei ist Client2.as:
package
{
//import required libraries
import flash.display.Sprite;
//set project properties
[SWF(width="800", height="600", frameRate="31", backgroundColor="#C0C0C0")]
//launch main class
public class Client2 extends Sprite
{
public function Client2() { //the constructor
trace("Client launched.");
var loginGui:LoginInterface = new LoginInterface(); //load the login interface object
loginGui.init(); //initialize the login interface (load it)
addChild(loginGui); //add login gui to the display tree
}
}
}
Es wird das Login-Interface-Objekt geladen werden. Ist das eine gute Sache, und mache ich es richtig?
Dann gibt es die LoginInterface.as Klassendatei:
package
{
//import required libraries
import flash.display.Sprite;
//the LoginInterface class
public class LoginInterface extends Sprite
{
public function LoginInterface() //the constructor
{
trace("LoginInterface object loaded.");
}
public function init():void //initialize the login interface (load it)
{
trace("LoginInterface init method was called.");
var loginButton:CustomButton = new CustomButton(300, 300, 100, 30, 3, 18, "Login!"); //create a new custom button
addChild(loginButton); //add the custom button to the display tree
}
}
}
Was ist das? Irgendwelche Kommentare? Um die Erstellung von einfachen Tasten ein wenig zu erleichtern, habe ich dann eine andere Klasse Datei namens CustomButton.as ->
package
{
import flash.display.SimpleButton;
import flash.display.Sprite;
import flash.text.TextField;
import flash.text.TextFormat;
import flash.text.TextFormatAlign;
public class CustomButton extends Sprite
{
public function CustomButton(xLoc:int, yLoc:int, width:int, height:int, iLabelOffset:int, fontsize:uint, label:String)
{
//create new simple button instance
var myButton:SimpleButton = new SimpleButton();
//create the look of the states
var normal:Sprite = new Sprite();
normal.graphics.lineStyle(1, 0x000000);
normal.graphics.beginFill(0x6D7B8D);
normal.graphics.drawRect(xLoc, yLoc, width, height);
//the mouseover sprite
var over:Sprite = new Sprite();
over.graphics.lineStyle(1, 0x000000);
over.graphics.beginFill(0x616D7E);
over.graphics.drawRect(xLoc, yLoc, width, height);
// assign the sprites
myButton.upState = normal;
myButton.downState = normal;
myButton.hitTestState = normal;
myButton.overState = over;
//add the button to the display tree
addChild(myButton);
//create button label
var tText:TextField = new TextField();
tText.mouseEnabled = false,
tText.x = xLoc;
tText.y = yLoc + iLabelOffset;
tText.width = width;
tText.selectable = false
var Format:TextFormat = new TextFormat();
Format.font = "Arial";
Format.color = 0x000000;
Format.size = fontsize;
Format.bold = false;
Format.align = TextFormatAlign.CENTER;
tText.defaultTextFormat = Format;
tText.text = label;
addChild(tText)
}
}
}
Gibt es etwas zu diesem Thema zu äußern? Ich bin mir sicher, dass ich viele Dinge falsch mache, vielleicht habe ich nicht die ganze objektorientierte Sache bekommen? Außerdem habe ich ein schlechtes Gefühl dafür, wie ich nach einer Klassendeklaration das "extends ..." benutze, hauptsächlich weil ich Sprite die ganze Zeit benutze und nicht wirklich verstehe warum oder was es tut (Probleme haben) im Internet auch herausfinden). Eine andere Sache, über die ich mich nicht sicher bin, ist die Benennung von Variablen in AS3. Sollte ich wirklich Namen wie xLoc oder iLabelOffset verwenden? Ich denke, ich bin nicht sehr konsequent in meiner Variablennamen zumindest?
Ich hoffe, jemand kann mir einen besseren Track geben als den, auf dem ich jetzt bin, da ich mir sicher bin, dass ich meine AS3-Codierung verbessern sollte, bevor ich weiter an diesem Biest arbeite.
Vielen Dank.
gut zu sehen, die framerate 31 mythos lebendig und munter! – spender
Was ist der FR31-Mythos? Ich habe danach gesucht, aber nur gefunden, dass viele Leute 31 bevorzugen. – invertedSpear