begin process at 2012 05 26 05:58:48
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Menu & navigation

 > GESTION SIMPLIFIÉE DE FENÊTRES

GESTION SIMPLIFIÉE DE FENÊTRES


 Information sur la source

Note :
6 / 10 - par 2 personnes
6,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Menu & navigation Niveau :Débutant Date de création :07/11/2004 Date de mise à jour :15/11/2004 15:13:38 Vu / téléchargé :6 244 / 1 311

Auteur : BananaTree

Ecrire un message privé
Site perso
Commentaire sur cette source (23)
Ajouter un commentaire et/ou une note

 Description

J'ai failli m'arracher les cheuveux avec les sources du site qui proposent la création de fenêtres multiples.

j'avais besoin d'un code du genre pour dévelloper un site et qd je travailles sur un site, il faut que ce soit le plus simple et le plus rapide possible.

alors j'ai créé mon code cet après midi. (on est jamais mieux servi que par soi même.)

à la prochaine mise à jour, je mettrais une fonction pour désactiver les boutons de _root au survol des fenêtres.


 Conclusion

bon ben voilà :
après une dure lutte, la version difinitive. ça correspond exactement à ce dont j'avais besoin.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

07 novembre 2004 12:00:38 :
rajout de l'action updateAfterEvent()
07 novembre 2004 16:14:10 :
le proto de gestion des boutons risque d'être un peu long à venir (c'est pas si simple) alors en attendant, j'ai rajouté une fonction pour désactiver/activer le lien au chargement de la fenêtre.
08 novembre 2004 15:12:00 :
a plus, var nom, a plus !
11 novembre 2004 00:15:54 :
y'a moins de lignes de code que toi. (il se reconnaitra). du coup j'espere repasser ds la catégorie "en progrès".
12 novembre 2004 02:33:13 :
en attendant la soluce définitive...
12 novembre 2004 18:36:06 :
finalement, c'était très simple. falait juste savoir... encore 2 ou 3 p'tits trucs à voir (in/activeButton, ça ressemble à rien) et je soignerais le graphisme.
13 novembre 2004 01:45:10 :
histoire de rappeler que c'est MON logo.
13 novembre 2004 14:17:43 :
 
15 novembre 2004 15:14:09 :
simplification évidente

 Sources du même auteur

Source avec Zip SPAS 3.0 ALPHA 1 RELEASE DISPONIBLE
Source avec Zip TUTORIAL SWING PACKAGE FOR ACTIONSCRIPT (SPAS) : LES BASES
Source avec Zip EFFET ELASTIQUE SUR DES FENÊTRES
Source avec Zip Source avec une capture CLASSE CALCULATOR
CLASSE GETTERSETTER DYNAMIQUE

 Sources de la même categorie

Source avec Zip CLASS IMAGE ET IMAGEEVENT par top30
Source avec Zip Source avec une capture MENU DÉFILANT par m1le
Source avec Zip Source avec une capture MENU SIMPLE STYLE IPHONE par frazeks1989
Source avec Zip Source avec une capture MENUS DÉROULANT XML par Speedy321
Source avec Zip MENU RETATION par habibcode

Commentaires et avis

Commentaire de pegase31 le 07/11/2004 04:14:20 administrateur CS

sympa .. mais encore une fois : Apprend à mettre ton anim en plus de 12 images/sec, bon sang !!!! :(
On a l'impression que l'ordi rame comme un veau pour déplacer une petite fenêtre de rien du tout ...

C'est tout de même pô dur ça !

ou alors colle un "UpdateAfterEvent" dans un coin pour fluidifier ça ... ça prend pas de temps CPU et à toi non plus !

Commentaire de BananaTree le 07/11/2004 12:13:17

pegase, pour le 12fps, je suis pas d'accord, mais pour updateAfterEvent, c'est juste !

le PB, c'est qu'on ne pense pas tjrs à le faire, par rapport à la puissance des ordis sur lesquels on travaille.
pour ma part, je vais monter un becanne basée sur un pII 600 en réseau, pour vérifier mes anims, et je vais probablement y coller un modem 56K.

on ne peut pas faire l'impasse sur ces configs, sous pretexte que de plus en plus de monde à l'ADSL, ça serait du suicide professionel...

Commentaire de top30 le 07/11/2004 19:06:41

Je voudrais pas être méchant, mais là y a qund même des couilles BALAISES !!!!

Je suis pas pour la critique facile, mais faut pas donner non plus l'occasion d en faire....

Tes boutons verts :
on (press) {
var url = "popup_01.swf";
var nom = "nom01";
popup();
}
et pourquoi pas ?
on (press) {
popup ( "01" );
}
Sachant que la generationdu nom sera faite par la fonction "popup" et que dans les trois cas c'est la même. On parles bien de ton exemple, et non du fait que cela pourrait être un nom de fichier complement distinct. ce qui perdrais le sens des popups.

Autre, tu créer un SWF par popup ???? Mais si t'en as besoin de 100 ? C est 3 fois le mème fichier !!!!
je sais je sais, tu vas dire :
"oui mais c est un exemple, normalement dans la fenêtre les fichiers sont différents.. La la fenetre est vide !!!"...
Ben ok !!! Alors pourquoi pas tu "attaches" pas une nouvelle instance de "fenêtre", et DANS LA FENETRE TU CHARGES LE CONTENU QUE TU AS BESOIN ?

Ben voilà.. Tu remarqueras que encore une fois, bien souvent le problème n'est pas le niveau de connaissance de Flash, mais une simple facon devoire la solution à un problème...
Et avec Flash c'est simple... Si je repete plus de quelque chose au moins une seconde fois, c'est que je peux  FACILEMENT améliorer ...

[04/10] Désolé !

Commentaire de BananaTree le 07/11/2004 20:40:25

slt top30
là je pense que t'as critiqué pour critiquer.

tu as très bien vu pourquoi j'avais mis "var url "et "var nom". Dans mon cas, il est plus rapide et interressant de faire comme ça, donc je ne changerais pas cette partie de la source.

j'aurais préféré que tu me dises quelles sont les erreurs que t'as repérées ds le code que je les corriges

@+ et bon code

ps : si tu as une piste à me donner pour que je puisse désactiver d'un coup tous les boutons de _root , je suis pas sur que ce soit possible par un prototype sous MX sans tous les nommer.

Commentaire de BananaTree le 07/11/2004 20:45:56

j'aurais du mettre "window" au lieu de "popup"

Commentaire de BananaTree le 08/11/2004 15:23:13

bon faut aussi être honnete, et reconnaître que var nom, ça servait à rien (j'a planté parceque j'avais un loadVariablesNum/ ...post avec un "level", au lieu d'un loadVariables/ ...post avec un "this".)

qd au reste, je persiste et signe, c'est pas une gestion de popup, c'est une gestion de fenêtres (c'est ds le titre) et c'est en rapport avec les contraintes du taf du moment. donc libre à vous de balancer un attachMovie comme l'a dit top30.

pour couper court, libre à vous de :
rendre la fenêtre redimensionable, de la créer en action script, d'en faire des popups, d'y mettre des slide bars, de la faire trembler, etc...

Commentaire de individis-bis le 08/11/2004 22:12:09

i= qq chose... par ici, et...
var ecm = autre chose... par là...
Si tu déclares tes variables en local, fait le partout...
Pense effectivement aux portées de variables, mais soit stricte avec toi même et homogène dans ton code....
Heureusement que ascript est cool, c++ et quasiment tous les autres langages t'aurais jeté sans problême...

Commentaire de individis-bis le 08/11/2004 22:20:27

J'avais pas tout vu...
4 lignes de codes 2 incohérences...
pourquoi ceci..?
loadMovie(""+url, ecm);
a quoi servent tes ""
Rien +url = url non..?
alors
loadMovie(url, ecm);
suffit largement...

Commentaire de BananaTree le 09/11/2004 11:43:40

individis-bis,
voilà le genre de critiques que j'attends, c'est ça qui va me faire progresser.

j'étais persuadé que l'url ne pouvait pas contenir de variable seule ; et des trucs tous cons que pas mal de débutants ignorent y'en à plein comme ça, c'est pour ça que les comms sont importants. (bien sur si C nul à chier, faut le dire aussi...).

faut pas croire, j'aime bien top30, et il le sait, mais sa critique était "inutile et incertaine" (conf Pascal, les pensées)

pour ton premier post, j'ai rien capté. je pensais que déclarer le variables sur la timeline le faisait en global, et que elles étaient automatiquement lues en local par la suite. si tu connais un tuto sur le net sur ce sujet? ça serait cool.

autre question, au sujet du proto pour désactiver les boutons de la scène. (je cherche juste une piste du genre :"tu devrais chercher ds telle ou teels direction..."

voilà, j'ai çà :

MovieClip.prototype.buttonState = function() {
this.onMouseMove = function() {
if (this.hitTest(_xmouse, _ymouse) == true) {
inactiveButton();
désactivés");
} else {
activeButton();
}
};
};

le pb, c'est que il faut que je puisse ajouter les surfaces des fenètres ou les soustraire, et déclarer cette suface à la place du this.
et il faut que je suprime le proto qd toutes les fenetres sont fermées. donc si vous pouvez m'indiquer une piste de travail, merci d'avance...

Commentaire de BananaTree le 09/11/2004 17:51:51

individis-bis,
je crois que je viens de comprendre ton 1er post,
j'ai remplacé i = 1+_root.i++; par j = 1+_root.i++;

(c'était ça ?)

Commentaire de Mafassure le 09/11/2004 22:18:17 administrateur CS

d'accord avec individis-bis
faut etre méthodique et cohérent, surtout si ton script devien public...
quant t'as 10 lignes tu peux survivre, si t'en à 3 fois plus t'as plus de cheveux ;-)

Commentaire de top30 le 09/11/2004 22:29:26

Bon comme tu as pas comprismon comment... Un dessin vaut mieux qu'un long discours...

http://www.chopper.fr/hopeMultimedias/BananaWindow.zip

Logo retouché ( fallait que je change d'air du boulot que j etais en train de faire ) et VRAIE GESTION SIMPLIFIEE de fenetre...

A plus et soit plus... Tolérant !
Je repète je casse pas pour casser ( ou sauf les cons mais je les avertis avant ! )....

Commentaire de individis-bis le 09/11/2004 23:02:13

Ce que j'aime avec Top30 c'est qu'il ne fait pas dans la demie mesure...
Si tu ne le comprend pas, il te pond quelque chose que t'es obligé de comprendre, et mieux que si tu avais fait semblant de comprendre.
On peut pas dire qu'il n'amène pas d'eau au moulin.

Le meilleur des tuto n'existe qu'envers celui qui veut le comprendre (c pas de pascal, c moi et c nul d'accord mais... moi aussi je suis fatigué ce soir) vient de me filer 6 heures de cours avec des stagiaires complêtement nuls... Ca tue, et apprend l'intolérance, un comble...

Sincèrement investir 55$ dans 'actionScript la référence' pondu par colin moock c'est le meilleur des investissement et gain de temps. C'est mon avis.

Commentaire de top30 le 09/11/2004 23:22:16

Entièrement d'accord..
Et vivement qu'il nous traduise le deuxième tome... Sir Colin Moock.

J avais lu aussi "Flash MX" aux édtions MacromediaPress, c'est beaucoup moins bien que "la Référence" mais plus accessible pour débutant ( Moi comme un con je l'ai lu apres !!! )...

Et l'autre truc à lire, c'est l'aide de Flash.. Je crois bien qu'au total, je l'ai lu 3 fois !... Puis une fois qu'on comprend le language AS, faut comprendre sa logique...

Et mon commentaire n'était pas "inutile" et "incertaine" (cf Pascal "Les pensées" ), mais "constructif" et "imcompris" ( Cf Top30, Désirs & Dégoûts, éditions "DieuExistePasIlmeLaDit );

Commentaire de individis-bis le 09/11/2004 23:23:25

Ya surement plus simple, et aussi pour ce que je vais dire, mais pas envie de me pencher sur le problême.
Bref, pourquoi pas un truc du genre:
Stocker les url, indices de tes fenetres par un push dans un tableau au fur et a mesure de leur création (en plus, ca donne la possibilité de mémoriser leur position avec leur caractéristiques et propriétés, contenu etc...) et les supprimer du tableau au fur et a mesure qu'elle sont fermées..?
Ensuite un delete ou une mise à (0) de la propriété length du tableau dès que la dernière fenêtre est fermée (Vérifiable aussi avec le .length du tableau).
J'ai peut être pas compris ce que tu demandais, alors  excuse m'en, je suis trèèèèès fatigué...

Il semble qu'il manque un bout de ton code dans ce que tu nous montres...
Je cite :
désactivés");  <---???
--------------
et:
}    
};   <----
};   <---- Ne pas abuser de la mise en forme automatique du code dans l'éditeur ;-)

Commentaire de BananaTree le 10/11/2004 00:24:44

individubis, c'est ce que j'esseyait de faire. mais j'avoue que je galère.
ça c'est des essais, je test un peut de tout, ça permet de voir un peu comment ça marche
//--------------
stop();
h = 0;
windowsZone = ["empty"];
function incTabl() {
h++;
windowsZone.push("window"+h);
}
//initialisation de la variable "i" qui définit le niveau de chargement de fenetre.
i = 0;
//on crée la fonction window
function window() {
//incrémentation du niveau de chargement de la fenêtre
i++;
//on crée une occurrence ecm du clip cible (là top30 devrait reconnaître qq chose)
var ecm = _root.createEmptyMovieClip("window"+h, i);
//on ajoute le nom de la nouvelle fenêtre dans le tableau zone
incTabl();
//ça c'est juste pour recréer l'effet aléatoire des ouverture de fenêtres dans IE.
ecm._x = random(100)+20;
ecm._y = random(100)+50;
//on charge le fichier dans la fenêtre
loadMovie(url, ecm);
//on vérifie l'incrémentation en rapport au déplacement des fenêtres
trace("level = "+i);
trace("contenu du tableau : "+windowsZone);
}
function activeButton() {
_root.Bouton1.enabled = true;
_root.Bouton2.enabled = true;
_root.Bouton3.enabled = true;
}
function inactiveButton() {
_root.Bouton1.enabled = false;
_root.Bouton2.enabled = false;
_root.Bouton3.enabled = false;
}
//on crée le prorotype pour l'état des boutons de la scène au survol de la fenêtre
MovieClip.prototype.buttonState = function() {
this.onMouseMove = function() {
if (this.hitTest(_xmouse, _ymouse) == true) {
inactiveButton();
} else {
activeButton();
}
};
};
MovieClip.prototype.exitWindow = function() {
windowsZone.splice(this.order, 1, "empty");
trace("contenu du tableau : "+windowsZone);
};
//------------------------

le pb c'est que j'ai pas compris cette histoire de variables.

pour le bouquin, si y'a l'avale de top30, c'est que ça doit être de la bonne.

au fait top 30, à cause de toi, vas faloir que je me remettes à illustrator à cause de toi (mon logo ;) ).

je me rappelles avoir dit à mafassure :"pas facile de communiquer sur un forum". C vrai, et puisqu'on est dans les citation : "éloquence, persuade en roi non en tyran" (pascal, toujours les pensées). en fait top30, j'ai parfaitement compris ce que tu disais, j'ai juste du mal exprimer le pourquoi du comment des choses sur le forum.

laisson faire le temps.

bon à plus les gars, je vais décortiquer le code de top30.

Commentaire de individis-bis le 10/11/2004 01:15:47

Si tu veux vérifier l'état ou les propriétés de même type d'objet utilise plutôt une boucle 'for in... typeof()'ça évitera la répétition de code... et c'est plus clair...
Imagine s'il y avait 50 boutons..?

Commentaire de BananaTree le 11/11/2004 00:18:15

merci individi-bis,
je vais voir ça, mais avant, je vais essayer de trouver la soluce pour les zones délimitées par les fenetres.

Commentaire de BananaTree le 11/11/2004 20:50:10

slt,
est-ce que l'expression mathématique "quelquesoit i" peut se traduire en actionscript ?

//--------------------------------
Mouse.addListener(_root);
_root.onMouseMove = function() {
switch (_root["window"+i].hitTest(_xmouse, _ymouse)) {
case true :
inactiveButton();
break;
case false :// default :
activeButton();
break;
}
}
//---------------------

Commentaire de top30 le 12/11/2004 11:02:23

Quelquesoit ?
Ca sousentend "toujours" !!!!

var quelqueSoit = true ;

if ( quelqueSoit ) faire ceci !

= ))

C'est nul !

Commentaire de Herokill le 31/12/2004 15:37:23

slt,
j'ai remarqué un problem avec ta source, j'ai essayé de faire une nouvelle fenetre mais quand je la lance avec un rocher sa marche mais si je la ferme après je ne peus plus la rouvrir, le rocher ne marche plus alors qu'avec tes autres fanetres sa marche comme il le faut.
Merci de m'apporter ta solutions.

Commentaire de BananaTree le 31/12/2004 15:51:09

slt herokill.
je sais plus ou est passée l'originale, mais si je me souviens bien, j'avais mis une action de type onUnload dans la fenetre, pour réactiver le bouton.
sinon, je reprendrais la source après le nouvel an, histoire de la rendre un peu plus propre.

@+

Commentaire de Herokill le 31/12/2004 15:56:56

ok merci, je vais essayer de me débrouiller

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,593 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales