Posted
4 months
ago
by
ths....@gmail.com
(ths otra)
Salut Vegasien, salut Ekameleon,
Tout d'abord, il faut m'excuser de mon acharnement qui pourrait être
incorrect: j'ai posté la même question que je m'apprête à vous poser sur le
forum mediabox et même sur l'IRC
lien<[link]>(avec code).
Seulement voilà, j'ai vraiment envie de réfléchir à une bonne
Posted
4 months
ago
by
ekam...@gmail.com
(eKameleon)
Hello :)
Petite mise à jour ce soir du package asgard.net.remoting avec
quelques changements :
1 - modification des types de l'événement RemotingEvent :
- "onError" devient "error"
- "onFault"
... [More]
devient "fault"
- "onResult" devient "result"
2 - refactoring et simplification des propriétés de la classe [Less]
Posted
4 months
ago
by
eKameleon
Flash CS3 et Flash CS4 proposent par défaut d'améliorer le débogage AS3 avec un "Mode avertissement". Même si à la base ce mode doit aider le flasheur dans son développement, j'avoue que personnellement je considère les "Warning" notifiés
... [More]
dans le panneau de sortie de Flash pas forcément très bien venus la plupart du temps.
On pourra noter d'ailleurs un bon petit feedback sur le sujet sur le site de ByteArray.org : Warnings mode, the dangerous friend
Je vais donc moi aussi vivement vous conseiller de désactiver dans vos paramètres de publication le "Mode avertissement" de votre document.
D'ailleurs il suffit de coder dans FDT quotidiennement et de compiler normalement avec le compiler FCSH et de revenir de temps en temps dans Flash pour se rendre compte que ce retour est parfois bien 'étonnant'
Voyons un exemple simple de classe pour isoler un warning qui pour moi ne peut vraiment pas être considéré comme une erreur :
package
{
import flash.display.Sprite ;
public class Main extends Sprite
{
public function Main()
{
_func = function():void
{
trace("hello world") ;
}
function1() ;
function2() ;
}
public function get function1():Function
{
return _func ;
}
public function get function2():*
{
return _func ;
}
private var _func:Function ;
}
}
Il suffit d'ajouter la classe ci-dessus dans le panneau de propriété d'un nouveau document AS3 et de lancer la compilation.
Résultat nous obtenons dans le panneau de sortie les deux invocations de la fonction (en gros nous attendions ce résultat) mais très étrangement une notification de type "warning" dans le panneau "Erreurs de compilations" de Flash : "Warning: 3553: Valeur de fonction utilisée alors qu'une valeur de type * est attendue. Il semble que des parenthèses () sont absentes après cette référence à une fonction."
En gros dans la propriété virtuelle "function2" Flash considère qu'il n'est pas possible de renvoyer un objet de type Function dans une fonction qui doit renvoyer un objet de type * ??? Alors que le type * reste un type dynamique qui permet de faire sortir n'importe quel type d'objet ? Très étrange donc ce genre d'alerte ?
Il est vrai que le code ci-dessus n'est pas vraiment très "standard" mais imaginons que dans une classe nous ayons besoin de stocker en mémoire une fonction pour le réutiliser plus tard.. si si ! cela peut arriver ! Par exemple avec une adaptation de la classe Tween bien connue de tous et la nécessité d'utiliser une fonction de "easing" pour changer l'effet appliqué sur l'interpolation.
Imaginons donc un bout du code de cette classe Tween avec le script ci-dessous :
package
{
import flash.events.EventDispatcher ;
public class Tween extends EventDispatcher
{
public function Tween()
{
// code
}
public function get easing():*
{
return _easing ;
}
public function set easing( easing:* ):void
{
if ( easing is Function )
{
_easing = easing as Function ;
}
else if ( easing is Easing )
{
_easing = (easing as Easing).ease ;
}
else
{
_easing = function(t:Number, b:Number, c:Number, d:Number):Number
{
return ( ( c * t ) / d ) + b ; // linear easing
}
}
}
private var _easing:Function ;
// ... reste du code de la classe
}
}
Avec Easing une interface simple permettant d'implémenter des classes simples pour chaque type de transition : Bounce, Back, etc. Cette interface doit juste définir une méthode ease() personnalisable.
package
{
interface Easing
{
function ease ( t:Number , b:Number , c:Number , d:Number ):Number ;
}
}
Dans la classe Tween définie plus haut, j'ai envie de définir une propriété virtuelle r/w "easing" qui peut prendre des objets de type Easing mais aussi des objets de type Function simples... Je suis obligé de typer les 2 fonctions get et set de ma propriété virtuelle avec le type * (impossible de typer différemment les 2 fonctions).
Dans Flash le problème du "warning" indésirable apparait sur cette classe au niveau de la fonction "get" de la propriété virtuelle "easing". Il est clair que le code ci-dessus même si il est "discutable" n'est pas mauvais en soit et que dans tous les cas l'application malgré ce warning l'application fonctionne sans soucis.
A noter que pour éviter ce warning dans Flash sur une fonction qui retourne un objet de type *, il suffit de forcer le type de l'objet de retour de la fonction avec le type "Object" :
public function get easing():*
{
return _easing as Object ;
}
Plus de message d'alerte après ce petit hack, mais cela reste tout de même à mon sens une solution tirée par les cheveux.
Je code très peu dans l'environnement auteur de Flash en privilégiant son utilisation uniquement pour la création des assets graphiques et des animations et je préfère largement ensuite charger mes swfs d'assets dynamiquement dans mon application principale codée dans FDT et ensuite il suffit de prendre la main sur les éléments graphiques via leurs simple noms d'occurrences.
Ce process de travaille laisse beaucoup plus de souplesse au graphiste, qui n'a plus d'excuse pour trouver l'ActionScript "compliqué" vu que le seul code qui lui ai demandé c'est un stop() de temps en temps sur une image clé, quelques étiquettes sur des images clés et surtout d'indiquer les noms d'occurrences sur les clips importants de l'application.
Bon finalement plus de "peur" que de mal .. mais franchement ils ont à mon sens simplifié à mort le code dans Flash CS3/4 en permettant au développeur débutant de coder sans se prendre trop la tête (pas besoin d'importer les classes natives, etc.) mais avec ce genre de "warning" sans queue ni tête.. pas facile pour un débutant de comprendre les rouages de l'ActionScript vous ne pensez pas ? [Less]
Posted
4 months
ago
by
ekam...@gmail.com
(eKameleon)
Hello :)
Quelques petites nouvelles ce soir pour vous parler rapidement de mes
travaux en cours :)
1 - je suis en train de travailler activement pour fusionner le
système de log de VEGAS dans Maashaack avec une nouvelle
... [More]
implémentation qui conserve l'essentiel de l'ancien moteur mais
totalement revu et corrigé avec de nouvelles fonctionnalités et [Less]
Posted
5 months
ago
by
nicolas...@gmail.com
(Nairus)
Hello,
Un graphiste de ma boite veux que je me rapproche le plus possible de
son interpolation avec un système de parallaxe.
J'ai fait 3 occurences du clip qui contient les layers pour le
parallaxe.
Je fais 3 parallaxes et je bouge le focus uniquement sur celui du
milieu:
import pegas.draw.Align;
Posted
5 months
ago
by
ekam...@gmail.com
(eKameleon)
Hello :)
Juste une petite info pour annoncer la mise à jour et refactoring du
tutoriel sur le pattern Visitor (se trouve dans le svn de AndromedAS
ou en external dans AS3/trunk/bin/tutorials dans les sources SVN de
VEGAS)
J'ai décidé pour le moment d'améliorer la notion de dépendance entre
Posted
5 months
ago
by
ekam...@gmail.com
(eKameleon)
Hello :)
Avec un peu de motivation et une grosse envie de prendre un peu de
temps pour rattraper un peu mon retard sur les nouveautés du FP10 que
j'ai du mettre de côté pendant un moment pour faute de travail
intensif sur
... [More]
certaines autres problématiques dans VEGAS... j'ai pu
enfin me tourner vers PixelBender et j'ai décidé d'implémenter dans [Less]
Posted
5 months
ago
by
ekam...@gmail.com
(eKameleon)
Hello :)
Juste un petit message pour vous annoncer une nouvelle version stable
de VEGAS avec la version 1.4.2.1325 :
Voir le détail de cette version dans le répertoire AS3/tags du SVN de
VEGAS :
- [link]
1.4.2.1325
- [link]
Posted
5 months
ago
by
ekam...@gmail.com
(eKameleon)
Hello :)
J'ai commencé ce week end une mise à jour des exemples du package
andromeda.ioc, donc attention car pour le moment à part le premier
exemple, tous les autres sont instables, je vais essayer de fixer cela
d'ici mardi :)
Désolé pour le petit désagrément mais cela permettra ensuite de
Posted
5 months
ago
by
goab...@gmail.com
(goabonga)
Voila je me met a l'ioc maintenant que je n'ai plus aucun mal a suivre
les plus de ton framework qui sont vraiment de plus en plus pratique,
mais dans mes essais de l'ioc j'ai un petit problème avec le STAGE
j'aimerais placer mes
... [More]
éléments a des positions dépendant du stage au
sein des fichier EDEN et des la construction ce ces objets : [Less]