Les relations 1:n ne sont pas réellement plus compliquées que les relations 1:1.
Pour ce faire, nous allons partir d'un exemple simple et expliquer le déroulement des opérations l'une après l'autre.
Prennons le cas d'une personne qui possède une voiture. Une voiture est possédée par 1 et 1 seule personne, alors qu'une personne peut posseder 1 ou n voitures.
Notre classe voiture :
class Voiture extends neko.db.Object {
public var id : Int;
public var nom : String;
public var id_proprietaire : Int;
static var TABLE_NAME = "Voiture";
static var TABLE_IDS = ["id"];
static function RELATIONS(){
return[{prop:"idU", key:"proprietaireId", manager:User.manager}];
}
public var proprietaireId : Int;
public var idU(dynamic, dynamic):User;
}
Le manager de la voiture, qui possède une methode qui va récuperer la liste des voitures comportant l'identifiant du propriétaire passe en paramètre :
Lire la suite >>
Dans toute application web, nous avons souvent besoin de relations inter-table. Dans ce tuto nous allons voir les relations 1:1 en prenant par exemple un site sur une école.
Prennons la table élève, un élève possède un parrain, et un professeur est parrain au maximum d'un élève.
Voici en images les deux tables :
Elles restent relativement simple. Chaque personne (élève ou professeur) possède un identifiant, un nom et un identifiant qui permet de connaitre soit le parrain, soit le filleul.
Tout d'abord, nous devons créer les deux classes propres à chaque table.
Lire la suite >>
Commencons par le code
var root : MovieClip = flash.Lib.current;
root.stop();
root.loaderInfo.addEventListener (ProgressEvent.PROGRESS, function(event:ProgressEvent)
{
var pcent:Float=event.bytesLoaded/event.bytesTotal*100;
trace("Chargement : "+pcent+"%");
if(pcent==100) root.gotoAndStop(2)
}
);
Quelques explications :
Le stop() est la pour arreter l'avancement de l'animation.
On place ensuite un écouteur sur la progression total du chargement du swf, quand celui ci est terminé (égal à 100), on lance le reste de l'animation.
Dans l'exemple, on utilise la methode trace(), mais bien évidemment, vous pouvez créer une barre, ou n'importe quoi pour visualiser le chargement. Il suffit juste d'utiliser la variable pcent.
Lire la suite >>
Vous souhaitez enlever, voir personnaliser le menu qui apparait par defaut lors d'un clic droit ?
Alors voilà comment il faut faire. C'est relativement simple, mais fort utile.
Tout d'abord, voici comment l'enlever :
var menu = new flash.ui.ContextMenu();
menu.hideBuiltInItems();
flash.Lib.current.contextMenu = menu;
Et maintenant, pour ajouter un nouvel élément :
var nouvelItem = new flash.ui.ContextMenuItem("Texte a afficher", true, true, true);
// on ajoute une action sur le bouton
nouvelItem.addEventListener(flash.events.ContextMenuEvent.MENU_ITEM_SELECT, function(e){
flash.Lib.getURL(new flash.net.URLRequest("http://revolugame.com"), "_self");
}
menu.customItems.push(nouvelItem);
Rien de très compliqué.
Lire la suite >>
But de ce tutoriel : créer un système de drag and drop d'un élément entre deux Sprites. Notre élément prendra la forme d'un cercle rouge, et nos conteneurs la forme de deux carrés bleus.
Le code
Lire la suite >>