Форум 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)
-   -   Трабла с LoadMovie (http://www.flasher.ru/forum/showthread.php?t=93087)

MisterX 13.03.2007 20:45

Трабла с LoadMovie
 
Вот класс:
Код:

import inc.func.xmlUtils;
class inc.controls.DrawOps extends MovieClip{
        public var clip:MovieClip;
        public function DrawOps(xml:XMLNode,path:String){
                //parse image
                var ret:Array=xmlUtils.findByTag(xml,"image");
                if(ret.length>0){
                        trace(path+ret[0].attributes.filename);
                        this.clip.onLoad=function(a:Boolean){
                                trace("Loaded");
                        }
                        this.clip.loadMovie(path+ret[0].attributes.filename);
                        trace(this.clip); //Вот тут почемуто выводит undefined.
                }
        }
}

Как мне загрузить клип в переменную??

etc 13.03.2007 20:58

Клипы в переменные не загружают, их грузят в другие клипы.
В приведенном коде в принципе все верно (за исключением onLoad, отсутствия типизации в некоторых местах и непонятно откуда берущихся переменных, типа path).

MisterX 13.03.2007 21:10

Тогда опишу задачу, мне нужно сделать масив клипов. Кусок кода из главного класа.
Переменная path содержит путь к каталогу с картинками.

Код:

private var drawOps:Array = Array();
...
...
var ret:Array=xmlUtils.findByTag(main,"draw_ops");
for(var i:Number=0;i<ret.length; i++){
        var tmp=new DrawOps(ret[i],this.path);
        this.drawOps[tmp.attr.name]=tmp;
}
...
...

описание ф-и xmlUtils.findByTag
Код:

static function findByTag(xml:XMLNode,tag:String):Array{
                var c:Number;
                var _ret:Array = Array();
                for(c=0;c<xml.childNodes.length;c++){
                        if(xml.childNodes[c].nodeName==tag){
                                _ret.push(xml.childNodes[c]);
                               
                        }
                }
                return _ret;
        }

Ну и сам класс DrawOps:
Код:

import inc.func.xmlUtils;
class inc.controls.DrawOps extends MovieClip{
        public var clip:MovieClip;
        public function DrawOps(xml:XMLNode,path:String){
                //parse image
                var ret:Array=xmlUtils.findByTag(xml,"image");
                if(ret.length>0){
                        this.clip.loadMovie(path+ret[0].attributes.filename);
                        trace(this.clip);
                }
        }
}

аа...и пример ХМЛ
Код:

<draw_ops name="close_button">
  <image filename="button-close.png" x="0" y="0" width="object_width" height="object_height"/>
</draw_ops>

Вопрос: Мне нужен масив с клипами, и чтоб потом я их мог атачить куда мне нужно, что я не так сделал?

etc 13.03.2007 21:19

Мувиклипы через конструктор не создаются. Надо использовать attachMovie.

MisterX 13.03.2007 21:24

немного не понял (( они даже сдесь не создаются .. почемуто ((
Код:

if(ret.length>0){
                        this.clip.loadMovie(path+ret[0].attributes.filename);
                        trace(this.clip);//тут выводится ундефайнет!!!!!
                }


etc 13.03.2007 21:28

Код оформлять не забываем.

Ещё раз объясняю: клипы с заданным классом создаются через attachMovie. В библиотеке должен быть мувик с указанным linkage прописанным классом DrawOps. Более того, в этом мувике должен присутствовать клип с именем clip. То, что вы указали, что такая переменная имеет тип MovieClip вовсе не значит, что этот клип создастся и будет присутствовать в классе.

MisterX 14.03.2007 17:03

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

etc 14.03.2007 17:09

Я предлагаю разобраться сначала с тем, как используются классы, расширяющие MovieClip.

MisterX 14.03.2007 17:11

Где про это можно прочитать, так как книги нет, пользуюсь только хелпой флеша?

etc 14.03.2007 17:38

В хелпе как раз и прочитаете, вместе с примерами.

Например:
http://livedocs.macromedia.com/flash.../00001412.html


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

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