Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   замена upState у кнопки (http://www.flasher.ru/forum/showthread.php?t=157762)

zxcv 10.06.2011 11:36

замена upState у кнопки
 
собственно, можно ли подменить upState или downState у кнопки картинкой, подгруженной из вне?
делал што-то типа:
Код AS3:

var button_up:Loader = new Loader();
button_up.load(new URLRequest("C:\\images\\button_up.png"));
nextButton.upState = Sprite(button_up);

съедает, но upState пропадает вообще.

КорДум 10.06.2011 11:39

Я так понимаю, вы пользуетесь ужасным родным классом SimpleButton? Напишите свою кнопку, где это будет возможно.
А есть еще поиск, где можно найти это: http://www.flasher.ru/forum/showthre...F1%F2%E5%E9%F2

zxcv 10.06.2011 12:40

я не понимаю этой строчки и getDefinitionByName в частности))
Код AS3:

arr_btn[0].upState = new (getDefinitionByName("new_button") as Class)();

попробовал по аналогии
Код AS3:

bmp = button_up as Bitmap;
nextButton.upState = new (getDefinitionByName("Bitmap") as Class)();

но эффект тот же (

КорДум 10.06.2011 12:46

Ну во-первых, есть хелп. Во-вторых, говорю вам, пишите свою кнопку.
Код AS3:

nextButton.upState = new (getDefinitionByName("Bitmap") as Class)();

Эта строчка создала новый пустой экземпляр класса Bitmap и поместила его в качестве upState у кнопки.

zxcv 10.06.2011 12:59

так а просто new Bitmap() не попрет?

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

КорДум 10.06.2011 13:02

Цитата:

так а просто new Bitmap() не попрет?
Естественно пойдет.
В своей кнопке сделайте upState контейнером и грузите в него, что хотите.

zxcv 10.06.2011 13:09

бррр... так зачем же тогда так... эммм... извращаться?? или различия все же есть? и почему в таком случае мой первый вариант не работает? как туда непустой Bitmap поместить?

КорДум 10.06.2011 13:13

Это не извращения, это обычная практика. Контейнер - это Sprite, к примеру.
По идее надо просто так:
Код AS3:

nextButton.upState = loader.content as DisplayObject;

Вообще адобовцы сделали непонятный класс. Если это не пройдет, пишите свою кнопку.
КОнечно же, нужно сначала дожидаться, когда картинка скачается.

zxcv 10.06.2011 15:06

не прошло) вообще говорит, што контент пустой.

не пойму, как мне сделать upState спрайтом.
мне нужно сделать спрайтом фон кнопки? т.е. я создаю кнопку, в ней на upState помещаю фон, который является наследником Sprite? и менять тогда не upState, а его ребенка, т.е. фон?

GBee 10.06.2011 15:10

Загрузки то дождались?


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

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