2011-09-24 3 views
2

En raison d'animations complexes pour un projet iOS, je suis un peu forcé d'utiliser Flash CS5.5 IDE, mais j'essaie d'utiliser Flash Builder 4.5.1 pour la bibliothèque de code MovieClips. Pour la plupart, cela fonctionne; Je fais des MovieClips dans la bibliothèque, en leur donnant des noms de classes que je modifie ensuite dans FB 4.5. Mon raisonnement est pour iOS tout doit être un gros fichier de cul de toute façon. Je ne veux pas vraiment tout faire un swc et intégrer dans Flash Builder, je veux juste faire des MovieClips et éditer leur code dans FB. Mais, disons que j'ai fait une boule dans l'EDI Flash. Dans la bibliothèque, je lui donne un nom de classe de 'Ball' qui étend MovieClip. Quand je retourne à Flash Builder dans ma classe principale J'utiliseFlux de travail Flash CS5.5 Library & Flash Builder 4.5

var _ball:Ball = new Ball(); addChild (_ball)

Le code fonctionne et le ballon est placé de la bibliothèque sur scène, mais il est le « ? » à côté de l'instanciation Ball suggérant que le type ne peut pas être trouvé ou n'est pas une constante de temps de compilation. Je ne veux pas vraiment faire une classe personnalisée pour Ball - bien que je sois certain que si je l'ai fait et que j'aie importé une classe Ball personnalisée, elle la trouverait et le '?' disparaîtrait, mais n'y a-t-il pas moyen de forcer Flash Builder à "voir" les objets/classes de la bibliothèque IDE Flash?

Merci beaucoup!

+0

Je ne peux pas vraiment vous comprendre. Si vous donnez un nom de classe à MovieClip, vous créez une classe personnalisée. Veuillez décrire cette partie avec "?" en plus de mots et peut-être avec une capture d'écran. – Nek

Répondre

1

Dans Flash Professional, la liaison AS doit correspondre au nom de la classe. Vous pouvez cliquer avec le bouton droit de la souris sur "Modifier la classe", puis sélectionner Flash Builder pour modifier la classe.

Testez la liaison AS pour vous assurer que votre package de classe est correctement référencé à partir de Flash Professional dans votre code.

Les vues construites dans Flash Professional instancient et ajoutent des enfants. Si vous faites glisser votre clip "Ball" de la bibliothèque sur le plan de travail, lors de l'exécution, la classe "Ball" sera instanciée et ajoutée à la scène.

Si le symbole ne nécessite aucune implémentation par programme, il n'est pas nécessaire de créer la classe. En fonction de la taille, la définition de classe du symbole n'est pas magique - Flash Pro crée automatiquement la classe pour vous. Vous ne saurez pas quel est son nom ou comment il a été défini lorsque le compilateur fait référence à la classe.

Cette question pourrait être affinée pour mieux comprendre votre objectif ou un problème spécifique que vous rencontrez. Si vous souhaitez coder dans Flash Builder, utilisez Flash Pro pour concevoir et mettre en page vos vues, puis exportez SWC à partir de Flash Pro. Dans Flash Builder, utilisez la balise META [Embed] pour référencer les symboles.

Si vous souhaitez coder dans Flash Pro, vous pouvez toujours utiliser Flash Builder lors de la modification du code.

Le "?" ne veut pas dire qu'il y a une erreur. C'est un avertissement. Vous pouvez le voir partout du paquet par défaut - des choses comme int, string, Number, MovieClip peuvent afficher un "?" à gauche par les numéros de ligne car le playerglobal.swc de Flash Pro doit être corrigé dans les propriétés .actionScriptProperties de votre Flash Builder.

Le compilateur de Flash Pro doit résoudre ces références et créer votre fichier SWF; cependant, la modification dans Flash Builder peut s'avérer fastidieuse sans l'achèvement du code, ou simplement en voyant autant de "?" par numéros de ligne.

Je vous suggère:

  • Créer votre FLA dans Flash Pro.
  • Établissez une classe de base ou attribuez un nom de classe de liaison AS à un symbole.
  • Dans la bibliothèque, "Modifier la classe" dans Flash Builder et laissez Flash Builder stub le projet dans votre espace de travail référençant src de Flash Pro.
  • Si vous voyez "?" des classes de package par défaut, mettez à jour vos .actionScriptProperties en remplaçant playerglobal.swc:

    < libraryPathEntry genre = "3" LINKTYPE = chemin "1" = "$ {} FLASHPRO_APPCONFIG/ActionScript 3.0/FP10.2/playerglobal.swc « useDefaultLinkType = » false "/ >

Si votre symbole n'a pas tringlerie, vous ne pouvez pas faire référence à l'aide d'ActionScript, à moins que vous pouvez assurer un accès via une classe de base comme appeler des objets comme MovieClip. Ce ne serait pas recommandé.

+0

Je vais essayer de mieux décrire mon entreprise. –

1

Le flux de travail que vous décrivez dans votre question m'a toujours dérangé. Définir un fichier de liaison d'un actif me semble être un gros couplage - à la fin ce n'est qu'un tas d'atouts - pourquoi devrais-je les coupler avec un comportement fixe? Les ressources pour un bouton devraient également être suffisantes et pour un bouton à bascule. Associez-le à la classe Button, puis vous devez dupliquer un actif et le lier à ToggleButton. Certains peuvent prétendre qu'il ne devrait y avoir qu'une seule classe Button avec une propriété toggable. Néanmoins, je pense que vous comprenez tous le point. C'est pourquoi je me penche sur Flex 4 et sur l'ensemble du contrat concepteur-développeur et sur la manière très découplée d'utiliser un composant et une peau.

Il existe un moyen d'utiliser cette approche dans Flash sans définir de liens dans le fichier FLA. En fait, j'utilise le fichier SWF compilé comme une bibliothèque de peaux d'actifs. J'ai développé un modèle de composant inspiré des débuts de Gumbo et du framework OpenFlux et appliqué des principes similaires dans Flash. Si vous êtes intéressé par les détails, vous pouvez lire le introduction article in my blog about the FLit framework. Le whole code + examples are available at Google Code.

Questions connexes