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

DgaRa 16.07.2005 01:21

беда с размером.....
 
Вот класс который организует для компонента подгрузку swf ..... вопрос как узнать геометричиские размеры swf? Подскажите у кого какие идеи?

class CFrame extends MovieClip
{
var my_mcl:MovieClipLoader;
var myListener:Object;
function CFrame()
{
my_mcl = new MovieClipLoader();
myListener = new Object();
myListener.onLoadInit =function(target_mc)
{
// выдаёт верный сайз
trace(target_mc._width);
}
my_mcl.addListener(myListener);
my_mcl.loadClip("example.swf",this["node0"]);
trace(this["node0"]._width); // выдаёт 0
};
}

nuran 16.07.2005 04:54

мама, роди меня обратно

Psycho Tiger 16.07.2005 08:32

хм... бяка - оглоадинит пашет, а он ентерфрейм нет.

Psycho Tiger 16.07.2005 08:40

Странно, изменить иона тока удалить...
Во превых - поюзай trace(this.node0._width) можешь так-же поюзать _xscale
Во вторых, попробуй просто trace(this["node0"])
Сорри, флэша ща под рукой нету, проверить не могу....

DgaRa 16.07.2005 15:44

Цитата:

Сообщение от Psycho Tiger
Странно, изменить иона тока удалить...
Во превых - поюзай trace(this.node0._width) можешь так-же поюзать _xscale
Во вторых, попробуй просто trace(this["node0"])
Сорри, флэша ща под рукой нету, проверить не могу....

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

Psycho Tiger 16.07.2005 18:57

НИЧЕГО??? В том то и дело, при трейсе етого обьекта он выдаёт undefined! Ты потерял свой обьект... жаль...

DgaRa 16.07.2005 19:22

Цитата:

Сообщение от Psycho Tiger
НИЧЕГО??? В том то и дело, при трейсе етого обьекта он выдаёт undefined! Ты потерял свой обьект... жаль...

Ничего я не терял ....так если в онЕнтерФрэйм начать убавлять размер ....он будет уменьшаться
class CFrame extends MovieClip
{
var my_mcl:MovieClipLoader;
function CFrame()
{
my_mcl = new MovieClipLoader();
this["node0"].loadMovie("example.swf");
trace(this["node0"]); // здесь undefined
this.onEnterFrame = _onEnterFrame;

};
function _onEnterFrame(i)
{
trace(this["node0"]);// а здесь всё нормально
}
}

Но вот в чём вопрос если я подгужаю несколько swf в цикле мне надо заносить их размер в массив ...как зделать? Есть предложения?

KidsKilla 16.07.2005 19:22

ясенпень выдаёт 0. а чего ты от него хочешь?
мув ещё не подгрузился, а ты его размер пытаешься узнать. делай что те надо в onLoadInit.

DgaRa 16.07.2005 19:29

Цитата:

Сообщение от KidsKilla
ясенпень выдаёт 0. а чего ты от него хочешь?
мув ещё не подгрузился, а ты его размер пытаешься узнать. делай что те надо в onLoadInit.

Я тоже так думал ....но не смог из онЛоадИнит передать зачения в CFrame...если знаешь прделожи как.

Nirth 16.07.2005 20:06

mx.utils.Delegate поможет тебе.
и вообще что за глупая привычка лезть в классы не прочтя перед этим документацию

DgaRa 16.07.2005 20:21

Цитата:

Сообщение от Nirth
mx.utils.Delegate поможет тебе.
и вообще что за глупая привычка лезть в классы не прочтя перед этим документацию

Интересно и что я такого не прочитал....чтобы мне нельзя было в классы залезать? и я и про клипЛоадер почитал да и вообще про классы...
За помощь спасибо! Но я порылся у себя на компе ...и гугле поискал ....скажи откуда скачать его?

KidsKilla 16.07.2005 21:12

Код:

class CFrame extends MovieClip{
        var my_mcl:MovieClipLoader;
        var myListener:Object;
        function CFrame(){
                my_mcl = new MovieClipLoader();
                myListener = new Object();
                myListener.root = this;
                myListener.onLoadInit =function(target_mc){
                        trace(target_mc._width);
                        trace(this.root)
                }
                my_mcl.addListener(myListener);
                my_mcl.loadClip("example.swf",this["node0"]);
                trace(this["node0"]._width); // выдаёт 0
        };
}


KidsKilla 16.07.2005 21:29

он у тя уже есть.

import mx.utils.Delegate;
var ob = new Object();
ob._name = "myOb";
ob.func = function(){
trace(this._name);
}
_root.my_mc.onRelease = Delegate.create(ob, ob.func);

DgaRa 16.07.2005 22:48

Вбил я твой код, а в ответ сообщение:
'mx.utils.Delegate' could not be loaded.
import mx.utils.Delegate;
мож скинешь на мыло freez@pochta.ru

DgaRa 17.07.2005 00:28

Спасибо всем за участие ...я узнал, что мне надо было....спасибо Nirth за то что рассказал проделегаты. Тема Закрыта.....


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

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