2010-12-01 58 views
1

J'ai essayé un tas de scripts JSFL pour modifier les polices de champs de texte d'une bibliothèque fla. J'ai utilisé ces scripts pour changer les polices de champs de texte pour une police intégrée qui existe dans la bibliothèque. Donnons un exemple: remplacer la police "Arial" utilisée par tous les champs de texte de la scène fla par la police incorporée "myEmbeddedArial *" (symbole). L'instruction de remplacement de la police JSFL est la suivante:JSFL - Flash CS4: remplacer la police des champs de texte par une police incorporée

textElement.setTextAttr("face", "myEmbeddedArial*"); 

je peux donner beaucoup de tous les détails sur cette question, mais que quelqu'un déjà observé et peut connaître sa cause racine?

Merci

PS: Notez le Rechercher/Remplacer « Police » caractéristique fonctionne IDE Flash CS4 correctement que si les champs de texte contiennent des chaînes Emtpy et que si le symbole dont cette textfield est dans une scène et uniquement si vous effectuez une recherche dans "Current Document" (et non dans "Current Scene").

+0

Je voudrais savoir si vous trouvez une solution à cela. Aussi, j'aimerais voir votre script, si possible, car je pourrais bientôt avoir besoin d'un hack similaire. –

+0

Voir le script envoyé par Rob: http://blog.samueltoth.com/?p=142 Il analyse tous les clips de la bibliothèque et ajoute la plage de glyphes désirée à tous les champs de texte de ces clips. Malheureusement, textElement.setTextAttr ("face", "myEmbeddedArial *") peut échouer gravement dans CS4 si vous essayez de définir un symbole de police incorporé (dépend de divers problèmes de conversion de fichiers CS3 à CS4). Et plus encore, * setTextAttr * ne renverra aucune valeur pour vous informer si elle a réussi ou échoué et pourquoi. Veuillez répondre à l'e-mail que je vous ai envoyé depuis Gmail si vous avez besoin de plus de détails à ce sujet. – khelkun

Répondre

0

Je pense avoir trouvé une solution réussie. La seule façon de le faire correctement dans CS4 IDE est d'utiliser la fonction find/replace, mais le contenu des champs de texte ne doit pas être vide.

  1. Utilisez votre script JSFL pour remplir tous les champs de texte vides de votre bibliothèque de symboles avec une chaîne de marqueur comme « #### ».

  2. Assurez-vous que tous les symboles de police intégrés utilisés sur vos champs de texte se trouvent dans votre bibliothèque fla. Parce que l'outil Rechercher/Remplacer n'analysera pas les champs de texte qui utilisent des symboles de police incorporés qui n'existent pas dans la bibliothèque. En effet, certains symboles de polices incorporés peuvent avoir été supprimés et/ou mappés sur une police par défaut (manuellement ou lors d'une conversion de fichiers de CS3 à CS4). Veillez particulièrement à la sensibilité à la casse sur les noms de symbole de police intégrés. Créez les symboles de polices incorporés manquants utilisés dans vos champs de texte (avec les noms sensibles à la casse) avant d'utiliser la fonction Rechercher/Remplacer.

  3. Créez les nouveaux symboles de police intégrés que vous souhaitez utiliser pour remplacer les anciens symboles de police incorporés.

  4. Vous devriez maintenant pouvoir utiliser la fonction de recherche/remplacement de CS4 même avec des symboles de police intégrés. Ouvrir la fenêtre de recherche/remplacement. Sélectionnez "Rechercher dans: Document courant" (pas dans "Scène actuelle"). Créez un nouveau calque sur votre scène principale. Créez une instance de tous les clips que vous avez dans votre bibliothèque dans cette couche (par exemple: sélectionnez toute la bibliothèque de symboles, puis faites glisser & et déposez la sélection dans la scène). N'oubliez pas d'enlever votre marqueur de chaîne #### de tous les champs de texte en utilisant votre script jsfl ou la fonction de recherche/remplacement de texte de l'EDI. Enfin, supprimez le calque que vous avez créé pour l'opération de remplacement de police et toutes les occurrences de symbole qui s'y trouvent.

+0

Vous êtes censé répondre à la question, pas une autre réponse. Et votre langage est offensant. –