Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Embed, assets Как лучше? (http://www.flasher.ru/forum/showthread.php?t=182090)

Varyag 11.07.2012 18:34

Embed, assets Как лучше?
 
Доброго времени суток. Не подскажете в чем проблема? Встраиваю изображение через Flash Builder все ок, он добавляет изображение в папку assets и генерит такой вот код
Код AS3:

<s:Image x="156" y="337" source="assets/image.gif"/>

Если тоже самое сделать во flash Develop то это не работает, изображение не отображается.
Нужен обязательно этот способ, т.к. много одинаковых изображений, не хотелось бы делать через Embed т.к. он создает отдельную копию для каждого запроса.

Котяра 11.07.2012 18:50

Это динамическая подгрузка, т.е. assets должны лежать в той же папке, что и флэшка.
В FB по умолчанию - это bin-debug, в FD - это bin. Поменяйте настройки проекта в FD.
Для того чтобы встроить в swf, надо писать
Код AS3:

source="@Embed('assets/image.gif')"

и assets должны лежать в той-же папке, что класс mxml
или со слэшом впереди
Код AS3:

source="@Embed('/assets/image.gif')"

тогда assets должны лежать в src

Varyag 11.07.2012 19:55

Спасибо. С Embed работает все в порядке. Наверное не совсем правильно вопрос поставил.. Я хотел узнать, как можно сделать в разметке так, что бы каждый такой image
Код AS3:

<s:Image x="156" y="337" source="assets/image.gif"/>

обращался к оному файлу, а не встраивал для каждого разные копии. Если, это конечно возможно.. В пример как аналог source в .net. Может я ошибаюсь и Embed делает только одну копию для всех одинаковых файлов..? У меня стоит проблема, того что флексовая загрузка, проходит очень медленно, поэтому стал грешить на Embed.. В чем еще может быть потеря производительности?

wvxvw 11.07.2012 21:11

Со слешем впереди лучше не делать, т.как можно перепутать с абсолютными путями.

По поводу того, чтобы один и тот же - на сколько я понимаю, с флексовым Image такое не прокатит (но может быть знатоки меня поправят). Что я обычно делал - наследовался от UIComponent, добавлял ему свойство source:BitmapData и этому свойству назначал BitmapData которую уже как-то сам загружал, кешировал и т.д.

Не знаю, возможно мне просто было лень разбираться с флексом, и механизм такой в нем имеется, но по доброй памяти, если задача занимает всего пару часов - лучше сделать самому, чем доверять флексу - меньше багов потом править.

Котяра 11.07.2012 21:15

Можно заэмбедить отдельно класс и написать
Код AS3:

 [Embed(source="assets/image.gif")]
        private const BmpCls:Class;

а в Image уже
Код AS3:

sourсe="BmpCls"

Или уже готовый спрайт/битмап..
В общем, всё подряд)
http://help.adobe.com/ru_RU/FlashPla...ge.html#source

Varyag 19.07.2012 07:27

Спасибо большое!

rs7 20.07.2012 14:27

Цитата:

Сообщение от wvxvw (Сообщение 1088261)
Со слешем впереди лучше не делать, т.как можно перепутать с абсолютными путями.

:umnik2:
Цитата:

If the path does not start with a slash character, Flex first searches for the file relative to the file that contains the [Embed] metadata tag.
If the path starts with a slash character, Flex first searches the directory of the MXML file for the asset, and then it searches the source path.
Т.е., по-русски это так:
Если начинается со слеша, то это путь построенный от корня проекта (source-path параметр компиляции)
Если НЕ начинается со слеша - путь построенный от файла с объявленным мета-тегом Embed

Котяра 20.07.2012 18:41

Ну я так и написал)

wvxvw 21.07.2012 13:56

Ну так а как вы по-другому зададите абсолютный путь на Юникс операционной системе? Там по стандарту, если путь начинается со слеша, то это абсолютный путь. Предположим вы создали у себя в проекте папку с названием bin и предполагаете, что компилятор найдет ее по пути /bin, а этого никогда не случится на Макинтоше или в Линуксе / ФриБСД / Солярисе. (Или на Маке эта папка переименована в Applications - ну так та же проблема будет, но только с другим именем, а их есть еще куча и всегда можно добавить).


Часовой пояс GMT +4, время: 08:35.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.