Форум 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)
-   -   Массив ссылок на объекты (http://www.flasher.ru/forum/showthread.php?t=83808)

Zmet 16.08.2006 18:57

Да ладно, неужели сработает?! Попробую :)

etc 16.08.2006 18:59

Я дополнил, посмотри.

Zmet 16.08.2006 19:07

Вот это посолидней! Ваяю. Результат скажу завтра :) Спасибо

Zmet 21.08.2006 11:16

Прискорбно. Ничего не получилось...

Nirth 21.08.2006 11:36

не удивительно, вы же не прочитали правил форума, вам предупреждение.

Juice_Green 21.08.2006 11:58

2 __etc: если судить по задаче, то можно обойтись и без eventDispether'a, а просто использовать this в в функции обработчике.

Zmet 21.08.2006 13:02

Цитата:

Сообщение от Nirth
не удивительно, вы же не прочитали правил форума, вам предупреждение.

Прочла. Какой из пунктов нарушен? Не пререкаюсь, просто не понимаю.

Спасибо всем. Один из вариантов решения проблемы нашла на RealTime. Если кому-то интересно, выкладываю кусочек кода:
Код:

for (var i in mc){
  if(mc[i].getDepth){
    mc[i].onPress=function(){
      trace(this);
}}}


etc 21.08.2006 14:01

Цитата:

Сообщение от Juice_Green
2 __etc: если судить по задаче, то можно обойтись и без eventDispether'a, а просто использовать this в в функции обработчике.

Можно. Но я привёл пример того, как сделал бы я.

pome 20.09.2007 19:34

Код:

var container_mc:MovieClip=this.createEmptyMovieClip("container_mc", this.getNextHighestDepth());
var clips:Array = new Array();

for (m=0; m<20; m++){
        clips[m]=container_mc.createEmptyMovieClip("clips"+m, container_mc.getNextHighestDepth());
        clips[m].lineStyle(1,0x000000,100);
        clips[m].beginFill(0x000000, 100);
        clips[m].moveTo(0,0);
        clips[m].lineTo(10,0);
        clips[m].lineTo(10,10);
        clips[m].lineTo(0,10);
        clips[m].lineTo(0,0);
        clips[m].endFill();
        clips[m]._x=20;
        clips[m]._y=10+m*12;
        clips[m].qwe="Это клип "+m;
}

container_mc._x=100;

import mx.events.EventDispatcher;
EventDispatcher.initialize(container_mc);
for (var i in container_mc) {
    var mc = MovieClip(container_mc[i]);
    if (mc!=null) {
        mc.onPress = function(event) {
              this._alpha = 50;
              trace(['Event receiver: '+this,'Clip number: '+this.qwe]);
        }
        container_mc.addEventListener("onAnyEvent",mc); // если используется EventDispatcher
    }
}
container_mc.dispatchEvent({type:'onAnyEvent'});

Вот так работает прекрасно. Мне тож статейка пригодилась:)

etc 20.09.2007 19:43

А вот двадцать раз clips[m] можно было и не писать. Мало того, что ухудшает читабельность, так ещё и тормозит.


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

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