IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Des canvas dans un canvas ?


Sujet :

JavaScript

  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 233
    Par défaut Des canvas dans un canvas ?
    J'essais d'inserer des canvas dans un canvas mais visiblement je n'ai pas de resultats et aucun message d'erreur. Est ce possible ou alors nous n'avons que la methode getContext() et ses méthodes pour y inserer quelquechose ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    function $(id){
    	return document.getElementById(id);	
    }
     
    function createTable(nbLines, nbRows, nbMines){
    // On crée le tableau a 2 entrées
    	var table = new Array();	
    	for (var i=0; i<nbLines; i++){
    		table[i] = new Array(nbRows);
    	}
     
    // Création de la surface de jeu
    	var bigCanvas = document.createElement("canvas");
    		bigCanvas.id = "bigCanvas";
    		bigCanvas.width = 16*nbRows;
    		bigCanvas.height = 16*nbLines;
    		bigCanvas.style.border = "solid 1px green";
    		document.body.appendChild(bigCanvas);
     
    	var cpt= 0;	
    	for (var k=0; k<table.length; k++) {
    		for (var j=0; j<table[k].length; j++) {
    			createTile(cpt);
    			cpt++;
    		}
    	}
     
    }
     
    function createTile(nb) {
    	bigC = $("bigCanvas");
    	// canvas incompatible IE	
    	var tile = document.createElement("canvas"); 
    		tile.id = nb;
    		tile.className = "tile";
    		tile.width = 16;
    		tile.height = 16;
    		bigC.appendChild(tile);
    }

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    heu déja au départ c'est quoi canvas
    ce n'est pas un élément standard html c'est une extension introduite par mac dans webkit ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 233
    Par défaut
    Oui c'est bien çà , puis adopté par les dev de Gecko (FF) et Opera ... wikiiiiii

    Bon cette phrase là en dit long et donc je pense pas que c'est possible, je voudrais juste que vous confirmez si je me trompe ou pas :

    mais de dessiner des éléments ne sont pas identifiables dans une vision à la DOM

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    à ce jour selon moi la seul solution qui permette de façon satisfaisante de faire du dessin avec javascript est de passer par des librairies du typoe de celle proposée par walterzorn
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 233
    Par défaut
    Ok merci du tuyaux --> bookmarked

    Mes besoins de generer des dessins en javascript ne nécessitent pas l'utilisation d'une librairie car je cherche juste a utiliser des cases qui sont contenues dans une case conteneur. DIV vous avez dit ??

    Je pensais utiliser la methode canvas pour faire un demineur car j'en avais fait un en java il y a très lonnnnngtemps et j'avais utilisé ceci.

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    table tr et td suffiront
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  7. #7
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 233
    Par défaut
    bah oui mais moi j'aime faire compliqué et j'essai avec des div , j'ai un mal de chien a bien positionner mais j'suis pas loin la

  8. #8
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    vive le css float et clear
    en javascript c'est stylefloat
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  9. #9
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 233
    Par défaut
    c'est pas style.float ?

    Sinon suis emmebté j'arrive a créer mon damier en position absolute mais en relative j'ai un mal de chien ...

    c'est pas vraimmetn un prob de javascript mais je vous colle le code qd mm au cas ou et je precise que je tiens a pas utiliser les tableaux !!!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
     
    function $(id){
    	return document.getElementById(id);	
    }
     
    function createTable(nbLines, nbRows, nbMines){
    // On crée le tableau a 2 entrées
    	var table = new Array();	
    	for (var i=0; i<nbLines; i++){
    		table[i] = new Array(nbRows);
    	}
     
    // Création de la surface de jeu
    	var bigCanvas = document.createElement("DIV");
    		bigCanvas.id = "bigCanvas";
    		bigCanvas.style.width = (16*nbRows)+(2*nbRows)+"px";	//2*nbRows = prise en compte de la bordure
    		bigCanvas.style.height = (16*nbLines)+(2*nbLines)+"px";
    		bigCanvas.style.border = "solid 1px green";
    		document.body.appendChild(bigCanvas);
     
    	var cpt= 0;	
    	for (var j=0; j<table.length; j++) {
    		for (var k=0; k<table[j].length; k++) {
    			var tile = document.createElement("DIV"); 
    			tile.id = cpt;
    			tile.className = "tile";
    			tile.style.position = "absolute";
    			//tile.style.display = "block";
     
     
    			tile.style.left = k*18+"px";
    			tile.style.top = j*18+"px";
     
     
     
    			tile.style.width = 16+"px";
    			tile.style.height = 16+"px";
     
    			numb = document.createTextNode(cpt);
    			tile.appendChild(numb);
     
    			tile.onclick = function(){alert(this.id);}
    			bigCanvas.appendChild(tile);
    			cpt++;
    		}
     
    		alert(tile.style.top);
    	}	
    }

  10. #10
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    ccsFloat ou styleFloat selon IE ou FFX
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  11. #11
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 233
    Par défaut
    quelquechose l'échape :

    si le declare les propriétées en CSS telles quelles :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    .tile {
    position : relative;
    float: left;
    }
    çà marche mais si je fais ceci en javascript, çà ne marche pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    tile.style.position = "relative";
    tile.styleFloat = "left";  /* pareil avec .cssFloat */

  12. #12
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 233
    Par défaut
    bon bein j'ai posté pour rien j'ai juste oublié de rajouter .style

    fallait ecrire ainsi en javascript :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    	tile.style.position = "relative";
    	tile.style.cssFloat = "left";
    pour FF donc tile.style.styleFloat

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. WPF C# Masquer des dessins dans un canvas
    Par Towandaa dans le forum Windows Presentation Foundation
    Réponses: 1
    Dernier message: 05/03/2012, 15h31
  2. Dessiner des formes opaque dans un canvas
    Par Chayanne47 dans le forum Langage
    Réponses: 3
    Dernier message: 24/07/2009, 10h15
  3. Dessiner des tableaux dans un Canvas
    Par anaranjado dans le forum Graphisme
    Réponses: 1
    Dernier message: 05/01/2009, 11h43
  4. mettre des panels ou des lables dans un canvas
    Par Invité dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 17/04/2008, 18h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo