![]() |
createEmtpyMovieClip() & Event Handler ???
А может кто-нибудь подскажет как добавить обработчик события клипу, созданному программным путем методом createEmptyMovieClip()???
|
imyaKlipa.onenterframe=function(){
trace("yo! flash cool:)"); } |
имя клипа генерируется динамически...
|
и нужны обработчики типа mouseMove, mouseDown и т.п.
|
:)
Код:
_root.createEmptyMovieClip("sq1", 1); |
Thanks :)
|
Re: :)
Цитата:
|
Sergey"iLoveYou", чё тя там зашибло?
|
Цитата:
почему if (this._name.charAt(0)=="s") , а не if (this._name.charAt(1)=="q")? вопрос века, йопт, а ты тут... :) |
хехе...
скажу те по секрету charAt(0)...
|
а почему?
или ты меня так изящно послал с моими дурацкими вопросами? круто звучит: "скажу те по секрету charAt(0)..." почти что: "эй, приятель, твоя просьба меня near bird". :) |
Пушистик, что-то я не понял, а зачем заморачиваться с прототипом. После этого мне нельзя называть клипы начиная с s.
Не проще-ли: function forout() { // onRollOut this.dx=0; this.dy=0; }; function fop() { // onPress trace(this._name+" Press event!"); this.dx=0; this.dy=0; }; function forover() { // onRollOver var k=-1+2*Math.random(); this.dx=5*k/Math.abs(k); var k=-1+2*Math.random(); this.dy=5*k/Math.abs(k); }; function forenter(){ // onEnterFrame this._x+=this.dx; this._y+=this.dy; }; _root.createEmptyMovieClip("sq1", 1); with (_root.sq1) { beginFill(0xff0000, 100); lineStyle(0, 0xFFFF00, 100); moveTo(50,100); lineTo(70,100); lineTo(70,120); lineTo(50,120); lineTo(50, 100); endFill(); } for (i=2; i<=10; i++) { duplicateMovieClip("sq1", "sq"+i, i); _root["sq"+i]._x=random(400); _root["sq"+i]._y=random(400); } for(i=1;i<=10;i++){ // назначение обработчиков событий _root["sq"+i].onPress=fop; _root["sq"+i].onRollOut=forout; _root["sq"+i].onRollOver=forover; _root["sq"+i].onEnterFrame=forenter; } stop(); |
ну кому как чегче...:)через прототипы проц напрегается намного меньше чем когда ты делаешь через цикл!...
Цитата:
;) Код:
_root.createEmptyMovieClip("square1", 1); |
2Пушистик
Цитата:
Тот копеечный выигрыш, который Вы получите за счет использования прототяпа, будет сразу же сьеден тем, что в обработчике используется if и строковая функция. Если же в фильме есть еще и другие клипы (а они наверняка есть), то обработчик, установленный через прототип, будет вызываться и для них. А значит ресурсы проца будут в пустую растрачиваться на обработку строковых ф-ций и if-ов. В качестве конструктива: вариант2 function forout() { // onRollOut this.dx=0; this.dy=0; }; function fop() { // onPress trace(this._name+" Press event!"); this.dx=0; this.dy=0; }; function forover() { // onRollOver var k=-1+2*Math.random(); this.dx=5*k/Math.abs(k); var k=-1+2*Math.random(); this.dy=5*k/Math.abs(k); }; function forenter(){ // onEnterFrame this._x+=this.dx; this._y+=this.dy; }; _root.createEmptyMovieClip("sq1", 1); with (_root.sq1) { beginFill(0xff0000, 100); lineStyle(0, 0xFFFF00, 100); moveTo(50,100); lineTo(70,100); lineTo(70,120); lineTo(50,120); lineTo(50, 100); endFill(); } _root["sq1"].onPress=fop; _root["sq1"].onRollOut=forout; _root["sq1"].onRollOver=forover; _root["sq1"].onEnterFrame=forenter; for (i=2; i<=10; i++) { // V V V вот оно !!! V V V sq1.duplicateMovieClip( "sq"+i, i,sq1); _root["sq"+i]._x=random(400); _root["sq"+i]._y=random(400); } stop(); |
Цитата:
юзай свои циклы:) закроем тему... |
2 major последний вариант - очень хороший :)
2 Пушистый не обижась, дружище! согласись, твои варианты слабы. у тебя получилось, как в пословице: "как поймать 4 льва? поймать 10 и 6 выпустить" :) и прототипы тут явно не к месту были. |
| Часовой пояс GMT +4, время: 09:04. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.