Mostra notizie nelle discussioni
Avatar
☺
Scritto da
altg
utente che non utiene
il 2014-10-07 13:15:00.0 alle 2014-10-07 13:15:00.0
Trollate totali: 11540
Come si presenta ora nell'insieme...
Il programmino del punto che rimbalza:
Immagine postata dall'utente

Usa l'implementazione "canvas" della classe astratta "raster". La keyword "as" fa il typecast sul registro "p", dicendogli che punta a un'istanza di canvas. In java, l'equivalente sarebbe una variabile di riferimento dichiarata come "tipo nome" ma non assegnata a un "new" qualcosa.

Un "raster" e` definito cosi`:

Immagine postata dall'utente

E gli unici metodi che implementa sono degli accessors per le dimensioni in pixels, che appunto sono le uniche cose che al momento hanno in comune canvas e bitmap, i due tipi concreti di raster. Gli altri sono signatures per metodi non implementati, che finiscono tutti in un'unica istruzione "leave" che ritorna al chiamante senza fare nulla. I campi dell'istanza sono descritti dai "count". Count e` un enumeratore progressivo: se non gli si dice diversamente, parte da zero e assegna la prima named constant a 0, la seconda a 1 e cosi` via. L'ultimo count da` la dimensione dell'istanza in unita` (cioe` in words del microprocessore).

L'implementazione "canvas", per esempio, poi implementa il costruttore "Create" cosi`:

Immagine postata dall'utente

facendo l'override della inlet "Create" nel nameset "raster", che e` esteso dal nameset "canvas" (per via della dichiarazione "nameset canvas extends raster"). Se dovesse dichiarare altri campi membri, dichiarerebbe altri count dopo "count from nSizeOfInstance" (risolta automaticamente nel nameset "raster", e la ridichiarerebbe (nel suo nameset) alla fine delle dichiarazioni "count".

Per curiosita`, canvas::Create alloca un canvassino di 1x1 pixels di default, se non viene ridimensionato, sicche` il bordo destro e inferiore sono tutti e due zero e width e height sono 1. Per ridimensionarlo c'e` canvas::SizeToByPixels (chiamato come "Size To larghezza;altezza Pixels"), oppure c'e` il costruttore alternativo canvas::CreateByPixels ("Create larghezza By altezza Pixels") che istanzia canvas e poi chiama subito (o meglio, si lascia "cadere" nel codice di) SizeToByPixels. E quello crea un canvas che inizialmente ha le dimensioni volute.

A me non sembra venuto male.
A me sembra esteticamente bello. Imbarazzato

Pagina generata in 90 millisecondi

Utenti attivi: 11 nell'ultimo minuto, 34 negli ultimi cinque minuti, 56 negli ultimi 15 minuti