Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Создать button as-кодом (http://www.flasher.ru/forum/showthread.php?t=145810)

rooty 20.10.2010 12:59

Создать button as-кодом
 
Здравствуте.

Неоднократно помогали, за что вам спасибо! И не устану повторять :)

Теперь вопрос вот такой:

Имеем код (мой):

Код AS1/AS2:

if (_level0.rank=="0") {
createEmptyMovieClip("backgr", 1);
createEmptyMovieClip("pictur", 2);
loadMovie("test/rank0.jpg", backgr);
loadMovie("test/pict.jpg", pictur);
with(pictur){
                _x = 100;
                _y = 100;
}
 
}

Вот. Хотелось бы, чтобы мувклип pictur (это просто картинка) был кликабельным, клик по нему открывал бы ссылку, и чтоб на нём курсор принимал вид пальца.. ну как обычная button в общем..
Писал-писал - нигде он онрелиз воспринимать не хочет :(

И второе: В файле уже есть полоска (графика) мувклип. Он уже создан и присутствует в файле swf. Как бы сделать, чтобы все создаваемые createEmptyMovieClip мувклипы были ПОД ним, а он - всегда сверху? Как создать его на заведомо высоком уровне (слое)? Где это указывать? (соответственно указывать надо бы в самой Флэш при создании, а не кодом впоследствии). Создать бы его на слое 99.. т.к. создаваемых кодом слоев будет еще много.


Спасибо!

P.S. и еще вопрос (до него пока, правда, дело не дошло, но на будущее) если сделать стандартный прелоадер (коих по всему тырнету тьма) будет ли он правильно работать и ждать загрузки всех мувклипов, созданных createEmptyMovieClip?
Т.е. будет ли прелоадер показывать загрузку только флэшки-контейнера на 10кб или дождется загрузки всех составляющих?

in4core 20.10.2010 19:46

Код AS1/AS2:

var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth());
mc.onRelease = function():Void {
    trace(this.image._url); // http://www.w3.org/Icons/w3c_main.png
}
var image:MovieClip = mc.createEmptyMovieClip("image", mc.getNextHighestDepth());
image.loadMovie("http://www.w3.org/Icons/w3c_main.png");

По второму вопросу, ниче не понятно. Сделайте свой прелоадер какой надо и все. делов то 1 минута

rooty 21.10.2010 12:53

in4core, спасибо большое!
Я немного модернизировал ваше решение, вдруг кому пригодится:
Код AS1/AS2:

if (_level0.rank=="0") {
createEmptyMovieClip("pictur", 2);// Создаем мувиклип-родитель для контейнера
pictur.createEmptyMovieClip("cont_pictur",0);// Создаем контейнер внутри "pictur"
pictur.cont_pictur.loadMovie("images/img1.jpg", pictur);// загружаем изображение
pictur.onRelease = function() {
  getURL("http://www.denwerupg.do.am"); //вешаем ссылку
};
with(pictur){ //корректируем положение картинки в пространстве
                _x = 100;
                _y = 100;
}
}


С прелоадером будем разбираться позже.. :)

Самое важное теперь стало вот это:
В файле уже есть картинка. Она уже создана и присутствует в файле swf. Как бы сделать, чтобы все создаваемые кодом createEmptyMovieClip мувклипы были ПОД ней, а она - всегда сверху? Как создать её на заведомо высоком уровне (слое)? Где это указывать? (соответственно указывать надо бы в самой Флэш при создании, а не кодом впоследствии).

in4core 21.10.2010 15:41

вместо getNextHighest.... написать например 999999 ))) А по теме swapDepth

rooty 21.10.2010 17:38

in4core, если бы я создавал все клипы createEmptyMovieClip-ом - то все понятно. Задаешь уровень слоям и они появляются так, как нужно.. тут другая ситуация и я не очень понимаю, как её решить:

Есть swf, в котором есть картинка. Эта картинка по-умолчанию оказывается самым нижним слоем, а все, которые добавляются createEmptyMovieClip-ми - оказываются сверху.. а надо, чтобы эта картинка была НАД всеми создаваемыми.. Куда надо чего писать? :)
если она на нулевом слое - то как ее переместить на 99999й? Она уже есть в файле.. не могу же я создавать новые слои таким образом:
createEmptyMovieClip("picture",-1);
createEmptyMovieClip("picture",-2);
createEmptyMovieClip("picture",-3);

lexa2000lexa 21.10.2010 18:01

Вам же написали в предыдушем посте что нужно использовать.
Код AS1/AS2:

ваша_картинка.swapDepth(10000)


rooty 21.10.2010 18:25

in4core, lexa2000lexa всё-всё :) спасибо большое, разобрался. Потупил немного, поломал мозг - и разобрался.
Там еще динамическое текстовое поле было.. больше всего проблем вызвало, но теперь все слои расставлены по местам :)
Все работает.
Очень вам признателен.


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

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