Форум 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)
-   -   loadMovieClip + onPress - обязательно делать метки ??? (http://www.flasher.ru/forum/showthread.php?t=71186)

rukez 30.10.2005 17:06

loadMovieClip + onPress - обязательно делать метки ???
 
Собственно вопрос - делаем пустой мувик, грузим в него PNG, потом добавляем к нему .onPress и ничего не происходит ... Собственно вопрос - обязательно рисовать в мувике квадрат или можно заставить его работать как-то целиком ? о надежде застваить работать только закрашенные области в транспарентном PNG я уже и спрашивать боюсь :)
---
Что имеется ввиду (для тех кто в банке) :
Код:

_root.createEmptyMovieClip("but_ad", _root.getNextHighestDepth());
var buttonLoader:MovieClipLoader = new MovieClipLoader();
buttonLoader.addListener(this);
buttonLoader.loadClip("add.png", _root.but_ad);
_root.but_ad.onPress = function() {
//функция для кнопки
};

т.е. можно ли :
1) Наш мувик заставить откликаться на onPress не рисуя в нём какой-нить шейп ?
2) Можно ли заставить его откликаться только там где наш PNG закрашен опять-же ничего не рисуя ?

iNils 30.10.2005 17:15

1. Можно. С помощью метода hitArea.
имя_кнопки.hitArea = имя_области_по_форме_которой_будет_работать_кнопка
2. Нельзя, все равно надо задавать область.

rukez 30.10.2005 17:20

1) Угу, но только hitArea тоже требует референс на какую-нить форму - а просто использовать весь размера мувика никак нельзя ? не рисуя прямоугольник в его размер ?
2) Жаль :(

rukez 30.10.2005 17:28

ой, промазал :) простите, точно если нолик то будет весь клип :)
Спасиба большое ! :)

rukez 30.10.2005 17:33

[q]If the hitArea property does not exist or the value is null or undefined, the movie clip itself is used as the hit area.[/q]
Неа, не работает :(
Т.е. всётаки рисовать гадский прямоугольник ? :(

rukez 30.10.2005 17:42

Так, может это я дурак, но что я делаю не так :
Код:

_root.createEmptyMovieClip("but_ad", _root.getNextHighestDepth());
//_root.but_ad.loadClip("add.png");
var buttonLoader:MovieClipLoader = new MovieClipLoader();
buttonLoader.addListener(this);
buttonLoader.loadClip("add.png", _root.but_ad);

_root.createEmptyMovieClip("but_ad_s", _root.getNextHighestDepth());
with (_root.but_ad_s) {
        beginFill(0x000000, 90);
                lineStyle(2, 0x000000, 100);
                moveTo(0, 0);
                lineTo(0, 12);
                lineTo(12,12);
                lineTo(12,0);
                lineTo(0,0);
                endFill();
};
_root.but_ad.hitArea = _root.but_ad_s;
_root.but_ad_s._visible=false;

_root.but_ad.onPress = function() {
//функция
};

Не работает :( Хде ошипка ? Даже с прямоугольником не работает :(

iNils 30.10.2005 17:55

А с чего ты решил что флеш грузит png картинки?
И потом, метод onPress надо назначать, только после того как картинка загрузилась. А не перед.

rukez 30.10.2005 17:59

Грузит, 8ка, правда надо в publush settings указывать именно 8ку как целевой плеер - с загрузкой PNG проблем нет - кнопка создаётся и показывается правильно, а вот .onPress к ней не крепится ...
...загрузилась ... БЛИН ... точно, счас пойду покопаю на эту тему ... у меня же ещё давно была проблема с тем что фрейм грузится вовсе не всегда когда должен по логике :)

iNils 30.10.2005 18:03

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

rukez 30.10.2005 18:10

Неа, с логикой как-раз неясно - если AS скриптовый язык, то по идее до выполнения строчки где идёт загрузка, следующая строка выполняться не должна - но эт по идее :) Отсюда и все мои проблемы :)
в итоге заработало вот так :
Код:

function onLoadComplete (mc:MovieClip){
        _root.but_ad.onPress = function() {
                a = random(Stage.width);
                b = random(Stage.height);
                c = random(Stage.width)-a-4;
                d = random(Stage.height)-b-4;
                draw_border(a, b, c, d, 0);
        };
};

.hitArea не нужен оказался, достаточно и вправду дождаться загрузки PNGшки


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

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