Форум 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=109679)

iNils 19.03.2008 19:17

Загрузка происходит асинхронно выполнению кода. До полного окончания загрузки и инициализации клипа, какой либо код к нему цеплять бесполезно.
Загружать надо с помощью класса MovieClipLoader, а код цеплять после события onLoadInit.
Воспользуйтесь поиском, там достаточно примеров.

IamZuBila16 19.03.2008 20:04

Исправил код таким образом:
Код:

var ml:MovieClipLoader = new MovieClipLoader();
var ls:Object = new Object();
for(var i:Number = 1; i < 9; i++){
obj_mc.createEmptyMovieClip("foto"+i, obj_mc.getNextHighestDepth());
ml.loadClip(_global[i+"opt"], obj_mc["foto"+i]);
}
ls.onLoadInit = function(mc:MovieClip){
        var x:Number = mc._x;
var y:Number = mc._y;
  mc._x = (i * 60)-10;
        mc._y = 5;
        mc._xscale = 15;
        mc._yscale = 15;
mc.onRollOver = function(){
mc._xscale = 30;
mc._yscale = 30;
}
mc.onRollOut = function(){
mc._xscale = 15;
mc._yscale = 15;;
}
ml.addListener(ls);
}

но теперь картинки вобще не грузятся.. подскажите пожалуйста почему.
Заранее благодарен за ответ.

divinus 19.03.2008 20:30

в вашем коде много непонятного, но может вот так?
Код:

var ml:MovieClipLoader = new MovieClipLoader();
var ls:Object = new Object();
obj_mc = this.createEmptyMovieClip("obj_mc", 1);
for (var i:Number = 1; i<9; i++) {
        obj_mc.createEmptyMovieClip("foto"+i, i);
        ml.loadClip(_global[i+"opt"], obj_mc["foto"+i]);
}
ml.addListener(ls);
ls.onLoadInit = function(mc:MovieClip) {
        var x:Number = mc._x;
        var y:Number = mc._y;
        mc._x = (i*60)-10;
        mc._y = 5;
        mc._xscale = 15;
        mc._yscale = 15;
        mc.onRollOver = function() {
                mc._xscale = 30;
                mc._yscale = 30;
        };
        mc.onRollOut = function() {
                mc._xscale = 15;
                mc._yscale = 15;

        };
        ml.addListener(ls);
};


IamZuBila16 19.03.2008 20:38

нет, не получится.. т.к. от добавления нескольких слов "var" ничего не изменится..

iNils 19.03.2008 20:39

В этот примере показана последовательная подгрузка.

divinus 19.03.2008 20:45

IamZuBila16, каких "var"?
в примере вашего кода movieClipLoader не слушается никем это раз,
obj_mc - непонятно что за клип это два,
и очень сомнительные ссылки через _global это три...

IamZuBila16 19.03.2008 20:46

Спасибо, с закрузкой картинок я вроде бы уже справлися.. Подскажите плз, как сделать их увелечение при наведении..
Код:

var mcl:MovieClipLoader = new MovieClipLoader ();
mcl.addListener (this);
var i:Number = 1;
var rootName:String = "opt";
var endName:String = ".jpg";
var mcOld:MovieClip = null;
this.onLoadInit = function () {
        var mc:MovieClip = this.createEmptyMovieClip (i+"opt", _root.getNextHighestDepth());
        mc._x = ((mcOld._x + mcOld._width) || 0) + 10;
        mc._y = 10;
        mc._xscale=15;
        mc._yscale=15;
        mcl.loadClip (i + rootName + endName, mc);
        mcOld = mc;
        i++;
};
this.onLoadInit ();


iNils 19.03.2008 20:51

Также как и тут

IamZuBila16 19.03.2008 20:58

вот мой код.
Код:


var mcl:MovieClipLoader = new MovieClipLoader ();
mcl.addListener (this);

var i:Number = 1;

var rootName:String = "opt";

var endName:String = ".jpg";
var mcOld:MovieClip = null;
this.onLoadInit = function () {
        var mc:MovieClip = this.createEmptyMovieClip (i+"opt", _root.getNextHighestDepth());
        mc._x = ((mcOld._x + mcOld._width) || 0) + 10;
        mc._y = 10;
        mc._xscale=15;
        mc._yscale=15;
        mcl.loadClip (i + rootName + endName, mc);
        mcOld = mc;
        i++;
        mc.onRollOver = function() {
                mc._xscale = 30;
                mc._yscale = 30;
        };
        mc.onRollOut = function() {
                mc._xscale = 15;
                mc._yscale = 15;

        };
}
this.onLoadInit ();

Вроде бы все правильно.. но увелечение все-равно не работает.
Помогите пожалуйста. Очень хочу закончить с этим сегодня.
Заранее благодарен.. (особенно iNils;))

iNils 19.03.2008 21:21

Цитата:

Сообщение от IamZuBila16
Вроде бы все правильно.. но увелечение все-равно не работает.

С какой стати? Вы тупо копируете код думая, что раз вам дают ссылку на пример, значит там именно ваша задача. Пример на то и пример, что бы его разобрать, понять и применить к своему коду, а не скопировать строки кода. А вам даже, если и показать ошибки, то сами исправить не можете, ка это было в первых постах данной темы.
На форумах УЧАТ и подталкивают в нужных направлениях, а не делают за вас.
Лично вам, я последний раз пишу готовый код. И писать мне в личку с просьбой помочь - не надо. Я сам хочу выбирать когда помогать, а когда нет.

Код:

var mcl:MovieClipLoader = new MovieClipLoader ();
mcl.addListener (this);
var maxFile:Number = 9;
var i:Number = 1;
var rootName:String = "opt";
var endName:String = ".jpg";
var mcOld:MovieClip = null;
this.onLoadInit = function (mc:MovieClip) {
        if (mc) {
                mc._x = ((mcOld._x + mcOld._width) || 0) + 10;
                mc._y = 10;
                mc._xscale = 15;
                mc._yscale = 15;
                mc.onRollOver = function () {
                        this._xscale = 30;
                        this._yscale = 30;
                };
                mc.onRollOut = function () {
                        this._xscale = 15;
                        this._yscale = 15;
                };
                mcOld = mc;
        }
        if (i < maxFile) {
                mcl.loadClip (i + rootName + endName, this.createEmptyMovieClip (i + "opt", this.getNextHighestDepth ()));
                i++;
        }
};
this.onLoadInit ();



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

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