Je viens de tomber sur le cas ce matin, l’opérateur PHP modulo (%) pour des valeurs trop grandes perd complètement les pédales pour donner des résultats totalement incohérents.
A cause d’un dépassement de capacité, le calcul du modulo peut donner des résultats négatifs avec deux opérandes positives ce qui est mathématiquement impossible (il est possible d’avoir un résultat négatif si un des deux opérande est négatif).
Essayez par exemple de calculer 3002223337 % 23 en PHP vous obtiendrez -2 (testé en PHP 5.3.2 sous Windows et Linux).
Heureusement, la formule de calcul du modulo n’est pas très compliquée et comble du luxe Wikipédia nous fourni un exemple d’implémentation de l’opération que votre serviteur vous a traduit en PHP :
function modulo($a, $b) {
return $a - $b * floor($a/$b);
}
Grâce à cela, plus de problème de résultat incohérent
VN:F [1.0.8_357]
Rating: 2.7/5 (3 votes cast)
developpement
Dernièrement, pour un projet en Flex j’ai été obligé d’intégrer un composant autonome développé en flash et ActionScript 3 sans les sources. Le composant étant autonome l’objectif était de pouvoir charger le fichier swf dans mon application Flex et de l’ajouter à une vue de l’application.
Heureusement il est possible de réaliser l’opération en ActionScript 3. pour cela il faut utiliser la classe Loader en respectant les étapes suivantes :
- créer un objet URLRequest avec le chemin (en AIR) ou l’url (en FLEX) vers le fichier swf
- créer un objet Loader
- invoquer la méthode load de l’objet Loader en lui passant en paramètre l’objet URLRequest
- ajouter l’objet Loader à une vue de l’application en utilisant un UIComponent
La mise en oeuvre de ces étapes en ActionScript 3 donne le code suivant :
var request:URLRequest = new URLRequest(”METTRE URL OU CHEMIN VERS SWF”);
var loader:Loader = new Loader()
loader.load(request);
var uiComponnent:UIComponent = new UIComponent();
maVue.addChild(uiComponnent);
uiComponnent.addChild(loader);
NB : le chemin peut être une URL ou bien pour une application AIR le chemin sur le disque dur. Dans ce cas, il faut faire attention aux règles de sécurité d’accès au système de fichier définies par le runtime AIR. Pour cela je vous invite à lire la documentation relative sur le site d’Adobe.
VN:F [1.0.8_357]
Rating: 5.0/5 (3 votes cast)
developpement, flex