Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Загрузка ресурсов в приложение (http://www.flasher.ru/forum/showthread.php?t=210910)

Wormhole 25.05.2015 14:52

Загрузка ресурсов в приложение
 
Здравствуйте! Как с помощью Loader'а загрузить изображение/звук в ролик так, чтобы он отображался в браузере? И можно ли обойтись без localhost'а?

ZackMercury 25.05.2015 14:56

Загружать на сервер?

Wormhole 25.05.2015 15:50

Цитата:

Сообщение от ZackMercury (Сообщение 1182769)
Загружать на сервер?

Загружать в само приложение

romanlysenko 25.05.2015 17:26

Глава 6.6 Загрузка внешних изображений во время выполнения стр 194 - 198 книги "ActionScript 3.0 Сборник рецептов".

Если требуется загрузить изображение/звук раз и навсегда, то есть на этапе компиляции, воспользуйтесь тегом
Код AS3:

[Embed]


undefined 25.05.2015 18:38

Wormhole,объясни зачем ты при загрузке локальных ресурсов пишешь локалхост? Где такому учат?
Достаточно просто указать путь к файлу ресурса относительно папки, в которой лежит флэшка

Wormhole 25.05.2015 19:56

Цитата:

Сообщение от undefined (Сообщение 1182781)
Где такому учат?

http://www.flasher.ru/forum/showthread.php?t=210879

Я и не пишу. Пока что

Добавлено через 55 секунд
Цитата:

Сообщение от romanlysenko (Сообщение 1182773)
Глава 6.6 Загрузка внешних изображений во время выполнения стр 194 - 198 книги "ActionScript 3.0 Сборник рецептов".

Если требуется загрузить изображение/звук раз и навсегда, то есть на этапе компиляции, воспользуйтесь тегом
Код AS3:

[Embed]


Спасибо, прочитаю лучше у Мука

undefined 25.05.2015 21:25

не вижу там упоминания локалхоста

Цитата:

Я и не пишу. Пока что
Значит ошибся.У кого-то видел недавно в коде загрузку локального ресурса через локалхост

Wormhole 26.05.2015 12:52

Цитата:

Сообщение от undefined (Сообщение 1182788)
не вижу там упоминания локалхоста


Значит ошибся.У кого-то видел недавно в коде загрузку локального ресурса через локалхост

Как-то непонятна механика этого тега. Не могли бы вы привести пример, как с помощью этого в переменную photo1 типа Bitmap записать photo1.jpg, а в переменную photo2 того же типа записать photo2.jpg?

caseyryan 26.05.2015 13:47

Код AS3:

[Embed(source = "images/hammer.png")]
private static const Hammer:Class;
private var _hammer:Bitmap = new Hammer() as Bitmap;


callme 26.05.2015 14:03

Зачем тут as Bitmap?

Wormhole 26.05.2015 16:21

Цитата:

Сообщение от caseyryan (Сообщение 1182801)
Код AS3:

[Embed(source = "images/hammer.png")]
private static const Hammer:Class;
private var _hammer:Bitmap = new Hammer() as Bitmap;


Я просил для двух

undefined 26.05.2015 17:19

Цитата:

Я просил для двух
А голову включить?)

Wormhole 26.05.2015 17:38

Цитата:

Сообщение от undefined (Сообщение 1182806)
А голову включить?)

Я не дурак. Я специально просил для двух, так как то, что мне было сказано я уже знал и просто не был уверен в работе этого кода, если его продублировать. Я первый раз работаю с тегами, если не считать размер swf. Для меня пример использования непонятен, т. к. непонятна техника. Неужели сложно просто сказать, что это будет то же самое два раза

caseyryan 26.05.2015 19:41

Кэп мне тут подсказывает
Код AS3:

[Embed(source = "photo1.jpg")]
private static const Photo1:Class;
private var photo1:Bitmap = new Photo1() as Bitmap;
 
[Embed(source = "photo2.jpg")]
private static const Photo2:Class;
private var photo2:Bitmap = new Photo2() as Bitmap;

Суть такая. Сначала создается эмбэд, и он записывается в следующую сразу за ним переменную или константу с типом Class.
То есть третью переменную создавать не обязательно.

in4core 26.05.2015 21:37

as Bitmap - приведение типов. Занадом. Потому что Photo1 - это класс, в котором может быть все что угодно, и при ошибке получите null

callme 26.05.2015 21:46

Почему получить null лучше чем ошибка?

dimarik 26.05.2015 21:52

Скорее всего для дисциплины. Вы же продукт для людей делаете, а не для логгера.

callme 26.05.2015 21:53

Я не понял.

dimarik 26.05.2015 22:03

Есть операция приведения через "as". Она рантаймбезопасна. В отличие от операции конвертации, которая тут неявно проследует без оператора as, вы схватите RTE в виде coercion failed.

Добавлено через 8 минут
Цитата:

Сообщение от caseyryan (Сообщение 1182815)
Код AS3:

[Embed(source = "photo1.jpg")]
private static const Photo1:Class;
private var photo1:Bitmap = new Photo1() as Bitmap;


На всякий случай напомню, что после метатегов не ставится точка с запятой ";".
В вышеприведенном примере все правильно сделано. А вот так неправильно:

Код AS3:

[Embed(source = "photo1.jpg")];


callme 26.05.2015 22:23

Ясно, спасибо, записал себе в todo погуглить "бросать ошибку или возвращать null".

Wormhole 27.05.2015 20:07

Цитата:

Сообщение от caseyryan (Сообщение 1182815)
Кэп мне тут подсказывает
Код AS3:

[Embed(source = "photo1.jpg")]
private static const Photo1:Class;
private var photo1:Bitmap = new Photo1() as Bitmap;
 
[Embed(source = "photo2.jpg")]
private static const Photo2:Class;
private var photo2:Bitmap = new Photo2() as Bitmap;

Суть такая. Сначала создается эмбэд, и он записывается в следующую сразу за ним переменную или константу с типом Class.
То есть третью переменную создавать не обязательно.

Спасибо. Это то, что я хотел услышать. Но есть два вопроса:

1. Почему ресурс загружается в переменную типа класс, а не соответствующего класса (Bitmap, Sound)
2. Что будет если написать
Код AS3:

[Embed(source = "photo1.jpg")]
[Embed(source = "photo2.jpg")]
private static const Photo2:Class;

Добавлено через 2 минуты
Цитата:

Сообщение от callme (Сообщение 1182822)
Почему получить null лучше чем ошибка?

Цитата:

Сообщение от dimarik (Сообщение 1182831)
Есть операция приведения через "as". Она рантаймбезопасна. В отличие от операции конвертации, которая тут неявно проследует без оператора as, вы схватите RTE в виде coercion failed.

Добавлено через 8 минут


На всякий случай напомню, что после метатегов не ставится точка с запятой ";".
В вышеприведенном примере все правильно сделано. А вот так неправильно:

Код AS3:

[Embed(source = "photo1.jpg")];


Спасибо

in4core 27.05.2015 21:28

1) Потому что сначала байты прописываются, а чтобы перевести - нужно указать явно
2) Зарегистрирвоан класс Photo2

Wormhole 27.05.2015 21:33

Цитата:

Сообщение от in4core (Сообщение 1182865)
Зарегистрирвоан класс Photo2

Пустой?

romanlysenko 27.05.2015 21:39

2. Что будет если написать
Код AS3:

[Embed(source = "photo1.jpg")]
[Embed(source = "photo2.jpg")]
private static const Photo2:Class;

1-я строка проигнорируется, а 2-я присвоится переменной...

Если Вы читаете К. Мука, то возможно вам поможет стр. 885, глава "Встраивание отображаемых элементов на этапе компиляции"

В общем принцип работы тега [Embed] такой как если бы вы загружали во Flash IDE в библиотеку звуки/картинки и т.д. и пользовались ими )

Wormhole 27.05.2015 21:51

Цитата:

Сообщение от romanlysenko (Сообщение 1182867)
2. Что будет если написать
Код AS3:

[Embed(source = "photo1.jpg")]
[Embed(source = "photo2.jpg")]
private static const Photo2:Class;

1-я строка проигнорируется, а 2-я присвоится переменной...

Если Вы читаете К. Мука, то возможно вам поможет стр. 885, глава "Встраивание отображаемых элементов на этапе компиляции"

В общем принцип работы тега [Embed] такой как если бы вы загружали во Flash IDE в библиотеку звуки/картинки и т.д. и пользовались ими )

Спасибо. А я вот как раз думал, что со стороны кода мы делаем, когда в IDE добавляем символы)
Насчет Мука: про embed я прочитал несколько раньше: стр. 725, "Загрузка внешнего растрового изображения"

А мои вопросы по лоадеру возникли только потому, что перепутал местами слова: прочитал, что лоадер - на этапе компиляции, а embed - на этапе выполнения

Теперь, я думаю, мне понятно, как работает Embed. Спасибо всем

ZackMercury 27.05.2015 23:07

Цитата:

Загружать в само приложение
Загружайте на сервер, а оттуда грузите в приложение.


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

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