Näytetään tekstit, joissa on tunniste ActionScript. Näytä kaikki tekstit
Näytetään tekstit, joissa on tunniste ActionScript. Näytä kaikki tekstit

27 syyskuuta, 2009

CoreSWF luokkakirjastot ja Xcode




Kuinka lisäät jaetut ActionScript 3 -luokat Xcode -ympäristössä.

Jaettu luokkakirjasto on siis se paikka, mihin voit kerätä yleistä hyödyllistä koodia, niin ettei sitä tarvitse kopioida jokaiseen projektiin erikseen.

Core SWF paketissa, josta luot projektisi on xml tiedosto nimeltään build.xml.

Avaa se ja lisää sinne tällainen rivi:
 <property name="CLASSES_HOME" location="/Users/OMA_TUNNUS/Documents/Xcode/luokat"/>

Parametrin location= pitää tietysti osoittaa sinne, missä sinun oma luokkakirjastosi oikeasti on, joten muista vaihtaa OMA_TUNNUS.
Itselläni luokkakirjasto sijaitsee Dokumentit / Xcode kansiossa ja on tavallinen kansio nimeltä luokat,
Sen sisällä on sitten nippu kansioita jotka ovat kaikkien projektien kesken jaettavissa, esim: caurina, asunit, fi, com, org jne…

build.xml alkupää on nyt siis tämän näköinen:

version="1.0" encoding="UTF-8"?>
<project name="«PROJECTNAMEASIDENTIFIER»" default="build" basedir=".">
<property name="FLEX_HOME" location="/Developer/SDKs/flex4.sdk"/>
<property name="src" location="src"/>
<property name="lib" location="lib"/>
<property name="dist" location="dist"/>
  <property name="CLASSES_HOME" location="/Users/OMA_TUNNUS/Documents/Xcode/luokat"/>


<taskdef resource="flexTasks.tasks" classpath="${FLEX_HOME}/ant/lib/flexTasks.jar" />


Nyt voit luoda Xcode:ssa uuden projektin ja tästä lähtien jokaisessa uudessa projektissasi
voit viitata suoraan haluamaasi jaettuun kirjastoon.

esim näin:

package src {
import caurina.*; // tuo animaatiokirjaston projektiin
import.com.dejavu.omat.*; // omat koodit jotka jaetaan useisiin projekteihin



30 maaliskuuta, 2009

OSA 8. Kenttä näkyviin


ActionScript 3 ohjelmointi alkeet
OSA 8. Kenttä näkyviin

Objekteja on ainakin kahdenlaisia sen mukaan mitä ne osaavat tehdä:
1. Näkymättömiä, kuten XMLList, joka vain esim lataa dataa ohjelmaan, sekä 
2. Näkyviä, joilla voi olla jokin visuaalinen ulkoasu. (Näkyvä voi olla piilossa)
Jotta objekti voisi näkyä, sen pitää periytyä näkyvästä objektista, kuten Sprite, Shape tai MovieClip
Yksinkertaisesti Sprite luokka siis osaa näkyä ruudulla.
extends avainsana liittää luomamme luokan Sprite -luokan laajennukseksi.


package { // Hello.as <- tallenna tällä nimellä
   import flash.display.Sprite; // <- Tuo Sprite luokka
   import flash.text.TextField;
public class Hello extends Sprite { // <- Laajenna luokkaa
   var viesti:String = "Hello world";
   var tekstikentt:TextField = new TextField();
   public function Hello { tekstikentt.text = viesti; addChild(tekstikentt); // <- Näytä kenttä stagella    }  
    }  
}  

OSA 5. Tekstikenttä


OSA 5. TextField

Lisätään muuttuja tyyppiä TextField, joka on valmis objekti joka osaa näyttää tekstiä stagella. Se tuodaan paketin käyttöön import avainsanalla flashin text -kirjastosta flash.text.

package {
import flash.text.TextField;
public class Hello {
var viesti:String = "Hello world";
var tekstikentt:TextField; // muuttuja tyyppiä TextField
public function Hello {
} //constr
} // class
} // pack


Sanalla new luodaan muuttujaan uusi (tyhjä) tekstikentän ilmentymä:

package {
import flash.text.TextField;
public class Hello {
var viesti:String = "Hello world";
var tekstikentt:TextField = new TextField();
   public function Hello {
   } //constr
} // class
} // pack

TextField -objektilla on ominaisuus .text, joka sisältää ruudulla näytettävän merkkijonon. Siirretään konstruktorissa teksti kentän sisällöksi:

package {
import flash.text.TextField;
public class Hello {
var viesti:String = "Hello world";
var tekstikentt:TextField = new TextField();
public function Hello {
tekstikentt.text = viesti; // <- varsinainen koodi } //constr 
} // class 
} // pack 
Vieläkään teksti ei ole näkyvissä vaikka koodi ajettaisiin. TextField objekti on vielä liitettävä display -listaan. Se on lista joka sisältää kaikki swf -tiedoston ruudulla näkyvät elementit.

OSA 4. Merkkijonon sijoitus muuttujaan


ActionScript 3 ohjelmointi alkeet
OSA 4. Merkkijonon sijoitus muuttujaan

Lisätään muuttuja jonka tyyppi on merkkijono.
var -avainsana kertoo kyseessä olevan muuttujan alustus.
viesti on muuttujan nimi (Ei saa alkaa numerolla, ei välejä)
Kaksoispisteen perässä on tietotyyppi: String 
AS3 on vahvasti tyypitetty, joten tietotyyppi on aina annettava, joissain tapauksissa voi käyttää tyyppiä *, joka vastaa mitä tahansa tietotyyppiä.
Puolipiste on pakollinen rivin loppumerkki.

package {
public class Hello {
// Luokan sisällä yleisesti 
// käytetyt muuttujat tähän
var viesti:String;
public function Hello {
} //constructor
} // class
} // package


Sijoitetaan muuttujaan merkkijono "=" sijoitusoperattorilla;
Merkkijono erotetaan lainausmerkeillä muusta koodista.

package {
public class Hello {
var viesti:String = "Hello world"; // <- sijoitus
public function Hello() {
} //constr 
} // class 
} // pack

OSA 3. Konstruktori


ActionScript 3 ohjelmointi alkeet

OSA 3. Konstruktori

Lisätään luokkaan konstruktori (constructor), joka on metodi ( eli funktio ), joka ajetaan ensimäisenä ja automaattisesti, aina kun luokasta tehdään ilmentymä.
Sillä on aina sama nimi kuin luokalla ja tiedostolla.

package {
public class Hello { 
    public function Hello(){ // <- konstruktori alkaa
// Tähän väliin koodi joka ajetaan 
    } // <- konstruktori loppuu 
} // class 
} // pack

OSA 2. Luokka eli class


ActionScript 3 ohjelmointi alkeet

OSA 2. Luokka eli class

Lisätään pakettiin luokka:

package {
  class Hello { // Luokan nimi on tiedoston nimi (ilman .as)
  } // <- luokka loppuu myös aaltosulkeeseen 
} // <- paketti loppuu 
ActionScript 3 sisältää avainsanoja, joilla säädetään objektien näkyvyyttä suhteessa toisiinsa. 
Sanat protected tai final suojaavat tiedoston muutoksilta, 
private rajaa näkyvyyden luokan sisäiseksi. 
Oletusarvo internal näkyy koko paketin sisällä. 
Sana public avaa objektin suojaukset ja näyttää osan toteutuksesta ulkomaailmalle, objekti ei voi täysin sulkeutua jos sitä halutaan käyttää, joten yleensä ainakin konstruktori ja luokka ovat tyypiltään public. 
Julkaistaan luokka sanalla public: 
package { 
public class Hello { 
} // class 
} // pack

OSA 1. Paketti ja kommentti


ActionScript 3 ohjelmointi alkeet

OSA 1. Paketti ja kommentti

Kaikki alkaa paketista, joka on yksinkertainen tekstitiedosto, joka sisältää ohjelman koodin. Tekstitiedostolle annetaan nimi, yleensä isolla kirjaimella alkava ja tiedostopäätteenä .as 
Kirjaimet tulevat arvatenkin kielen nimestä.

Hello.as -tiedosto, joka sisältää (tyhjän) paketin:
packet {}

Yleensä ennen sanaa packet ei ole yhtään merkkiä, eikä viimeisten aaltosulkeiden jälkeen. Pidän kuitenkin tärkeänä koodin luettavuutta, joten kirjoitan usein kommentin aaltosulkeen perään, erottamaan lohkoja toisistaan.

Voidaan lisätä kommentteja, eli ohjeita jota ei käännetä eikä ajeta:

package {
//Yksirivinen kommentti alkaa kahdella kautta -merkillä

/* Tällainen monirivinen kommentti tarvitsee 
erikseen aloitus ja lopetus merkin
ja paketti on siis aina aaltosulkeiden välissä */
} // <-- paketin loppu (aaltosulkeet kiinni)

ActionScript 3 perusteet

Ensiaskel ohjelmointiin ActionScript 3 kielellä

Ongelmana ohjelmoinnin aloittamisessa voi olla saada toimiva ohjelmointiympäristö pystyyn. Myöskään yksinkertaisia kohta kohdalta ohjeita suomeksi ei tahdo löytyä. Saati sitten kun mennään ohjelmoinnissa pidemmälle.
Jotta voisi kokeilla toimiiko kyseinen ympäristö tarvitaan jokin ohjelma, jolla sen toimivuuden voisi kokeilla. Sitä varten usein tehdään ensin ns. HelloWorld ohjelma, jolla ympäristön toimivuus todetaan.
Siis varmasti toimiva yksinkertainen minimiohjelma, jolla näkee että kyllä se toimii. Tee tekstitiedosto nimeltä Hello.as ja siihen seuraava koodi.
package {
   import flash.display.Sprite;
   import flash.text.TextField;
    public class Hello extends Sprite {
public function Hello() {
  var helloDisplay:TextField = new TextField();
  helloText.text = "Hello World";
 addChild(helloText);

    }


Tämän kääntäminen valitulla ohjelmointiympäristöllä on se varsinainen ongelma, jonka aloittelija kohtaa. En siis syvenny koodiin ja syntaksiin tässä, sen aika on sitten, kun ohjelmointiympäristö pyörii. 
Yksinkertaisia ohjeita pystytykseen on vaikea antaa, koska ympäristöjä on useita erilaisia ja ohjeet hiukan erilaisia kunkin kohdalla. 
Mikäli rahaa on, voi suositella kaupallisia tuotteita, mutta ellei ole, on tyydyttävä seuraavaksi parhaaseen ja myös sen opastuksen tasoon.
Jos käyttää PC -koneita kuten useimmat, FlashDevelop on suositukseni.
Flash
Adoben kaupallinen, mainitsen ensin, koska tästä kaikki on alkanut.
FlashDevelop
Suomalaisten kehittämä ja ilmainen, vain PC -koneisiin. 
Xcode
Applen ohjelmointiympäristö, vaatii viritystä. Itse käytän tätä.
Eclipse
Vaatii viritystä. En tunne kovin hyvin vielä, ilmainen versio on olemassa.
Flex
Adoben kaupallinen versio, toimii lähes paketista.

Kullakin on ohjeita asentamiseen. Palataan niihin myöhemmissä posteissa.
Puran hello -koodin selventävillä kommenteilla myöhemmin.