Форум 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)
-   -   onResize (http://www.flasher.ru/forum/showthread.php?t=78068)

maggot 08.04.2006 02:20

onResize
 
Я так понял события у мувиклипа onResize нет. И класс с параметрами делать неохото.
Как сделать, чтобы при изменении размеров мувиклипа, в нём выполнялся скрипт?

KUZEN 08.04.2006 02:51

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

Storm[pfp] 08.04.2006 11:32

я использую такую конструкцию :
Код:

var resizer:Object=new Object()
resizer.onResize=function(){ 
        trace("resize")          }
mc.addListener(resizer)

ссори... на мувие она не работает ...,а на Stage все нормально

__i 08.04.2006 14:51

Вспомнился мне анегдот:
"Сидит безногий ребенок (Р) и смотрит мультики по телевизору. Приходит добрый папа (П) и переключает ну футбол.
(Р) папа, ну там же мульитки.
(П) встань и переключи
(Р) пап ну у меня же нету ножек...
(П) НЕТУ НОЖЕК - НЕТУ МУЛЬТИКОВ"

напиши класс который это будет делать и не парься - там 33 строчки кода.

neelts 08.04.2006 15:32

Цитата:

Сообщение от KUZEN
Постоянно отслеживать его размер и при изменении выполнять функцию

да, причем использовать для этого функцию watch

silin 08.04.2006 16:03

>>причем использовать для этого функцию watch
имхо не проходит: watch не отслеживает _width, _height..

__i 08.04.2006 16:21

ага силин прав.
Я только что попробывал, пол часа времени потратил((... плохо незнать мат. части

neelts 08.04.2006 17:06

точно, если все классы во флеше были бы наследниками Object (как это принято в оо языках), то бы получилось.

кстати можно просто пойти в обратном направлении, и всё получится))) :

_root.createEmptyMovieClip("m", 0);
m.lineStyle(0,0x000000);
m.lineTo(50, 50);
var w = new Object();
w._width = 0;
w._height = 0;
var c = function(p, o, n, d){
d[p] = n;
trace(d._name+"."+p+" changed to - "+n);
}
w.watch("_width", c, m);
w.watch("_height", c, m);
//
w._width = 100;
w._height = 100;

во! помоему классно)

могу класс универсальный накатать если кому надо.

silin 08.04.2006 17:17

Цитата:

w._width = 100;
w._height = 100;

во! помоему классно)
здорово, только мувик не при делах :)

neelts 08.04.2006 18:06

Цитата:

Сообщение от silin
здорово, только мувик не при делах :)

короче я не удержался и вот класс, тут частично при делах будет ;) :

Код:

class propWatcher {
        // by neelts
        // funcs = new Object{o:someObject, f:someFunction, a:functionArgs}
        function propWatcher(object, funcs, props:Array) {
                object._prop = new Object();
                var p = object._prop;
                p._object = object;
                p._f = funcs;
                p.change = function(prop:String, ov, nv, object) {
                        object[prop] = nv;
                        this._f.f.call(this._f.o, this._f.a);
                };
                p._add = function(prop:String) {
                        this.watch(prop, this.change, this._object);
                };
                p._del = function(prop:String) {
                        this.unwatch(prop);
                };
                for (var i in props) {
                        var pi = props[i];
                        p[pi] = object[pi];
                        p._add(pi);
                }
        }
}


пример использования:

Код:

_root.createEmptyMovieClip("m", 0);
m.lineStyle(0,0x000000);
m.lineTo(50, 50);
var p = new propWatcher(m, new Object({f:tracer, o:_root}), ["_width", "_height"]);
function tracer(){
        trace("changed");
}
//
m._prop._width = 10;
m._prop._add("_alpha");
m._prop._alpha = 50;
m._prop._del("_height");
m._prop._height = 100;



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

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