Форум 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=186123)

flashtrash 28.10.2012 17:46

добавить картинку на сцену из библиотеки
 
Подскажите как добавить на сцену картинку из библиотеки и в последствии изменять её на другую

in4core 28.10.2012 18:18

Нужно создать класс который будет хранить эту картинку. Создать методы которые будут менять на другие картинки. Использовать класс

NikolyA 28.10.2012 18:22

добавляешь на сцену через addChild, ну а меняешь ее обновляя через библиотеку

in4core 28.10.2012 19:01

Цитата:

добавляешь на сцену через addChild, ну а меняешь ее обновляя через библиотеку
Покажи!!! Хочется посмотреть на сие творение

flashtrash 28.10.2012 22:15

Цитата:

Сообщение от in4core (Сообщение 1101751)
Нужно создать класс который будет хранить эту картинку. Создать методы которые будут менять на другие картинки. Использовать класс

Делаю следующее - Преобразовываю в символ картинку которую перетащил в рабочую область из библиотеки, во вкладке дополнительно назначаю ей класс Fon

Код AS3:

var fon:Fon = new Fon();
addChild(fon);

У меня 12 таких фонов которые нужно будет изменять по событиям, получается мне придётся таким же способом создавать ещё 11 и при необходимости удалять экземпляр а на его месте иницализировать новый с другой фоновой картинкой? Или можно передать этому экземпляру (fon) другую картинку из библиотеки?

И ещё, правильно ли я понимаю что на это фоновое изображение другие картинки добавляются также по средствам addChild()?

тоесть также приобразую новое изображение в символ, назначаю класс

Код AS3:

var pic:Pic = new Pic();

но метод addChaild использую уже от fon

Код AS3:

fon.addChaild(pic)

верно?

in4core 29.10.2012 01:40

В данном случае как ни крутись 12 объектов создавать придется. Либо перестаем писать в IDE и используем embed тег, хотя и в иде можно его юзать. Зашиваем в класс все 12 картинок и перебором включаем нужную. Картинки теперь в библиотеку класть не надо будет, а положить рядом с swf - и зашивать.

RigidFlasher 29.10.2012 07:59

Цитата:

Зашиваем в класс все 12 картинок и перебором включаем нужную
in4core, подскажите, пожалуйста.
Код пишу во FlashDevelop, графика в символах во FlashIDE. Вот так я зашиваю в класс один символ.
Код AS3:

[Embed(source = "../../../../lib/components.swf#MenuButton")]
public class MenuButton extends BaseButton
{
        // поля и методы класса
}

Как зашить несколько символов и перебором включить нужную?

in4core 29.10.2012 14:54

Если используем картинки, то для каждой картинки класс создавать не надо, не нужно так же их во FlashIDE класть вообще.
Код AS3:

[Embed(source = "123.jpg")] private const img1:Class;
private var bit1:Bitmap = new img1() as Bitmap;
[Embed(source = "123.jpg")] private const img2:Class;
private var bit2:Bitmap = new img2() as Bitmap;
[Embed(source = "123.jpg")] private const img3:Class;
private var bit3:Bitmap = new img3() as Bitmap;
 
public class MenuButton extends BaseButton
{
        // поля и методы класса
}

К примеру

AlexLucas 29.10.2012 15:33

А разве в этом примере вы не создаёте для каждой картинки по классу?

in4core 29.10.2012 16:12

AlexLucas создаю, только виртуально , а не физически, и все они находятся в одном файле , а не разделены на 12 файлов

gloomyBrain 29.10.2012 16:34

Не, ну как виртуально. Классы создаются и попадают в итоговый swf-файл.

in4core 29.10.2012 17:14

Цитата:

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

flashtrash 29.10.2012 22:29

Я тут задумался, как грамотнее делать, использовать картинки из библиотеки (тоесть сразу все изображения будут находиться в swf) или всётаки подгружать их из папки рядом swf? Картинки не маленькие и в первом случае могут пагубно отразиться на времени загрузки приложения...

Добавлено через 2 часа 20 минут
и ещё вопрос... Как получить имя объекта который я отдал addChild?
Например

var fonB:FonBlack = new FonBlack();

addChild(fonB);

как узнать что addChild в последний раз был отдан именно fonB а не fonY или FonHZ?

in4core 30.10.2012 01:54

Цитата:

как узнать что addChild в последний раз был отдан именно fonB а не fonY или FonHZ?
А зачем?
Код AS3:

private var _currentImage:* = null;
var fonB:FonBlack = new FonBlack();
 
addChild(fonB);
_currentImage = fonB;


RigidFlasher 30.10.2012 11:49

Цитата:

Если используем картинки, то для каждой картинки класс создавать не надо, не нужно так же их во FlashIDE класть вообще.
Спасибо.
А если используем не картинки, а символы? Обязательно ли для каждого символа создавать свой класс, если использовать тег embed?

Hauts 30.10.2012 12:18

Не обязательно. Только тогда сути в эмбеде не будет :)

flashtrash 31.10.2012 08:44

Подскажите как сделать чтобы при изменении размеров окна браузера динамически менялись размеры интерфейса ?


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

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