Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Статьи (http://www.flasher.ru/forum/forumdisplay.php?f=101)
-   -   ActionScript 3 с нуля (http://www.flasher.ru/forum/showthread.php?t=92301)

Reflection 18.05.2008 12:20

А вот еще что я хотел спросить. Если я в конце моей функции hendleComplete вставлю кнопку добавлю листнера и в функции которая будет вызываться,скажем, при клике по кнопке, буду указывать клип с картинкой(например чтобы сдвинуть его,или еще что ни будь), то мне компилятор скажет : 1120: Access of undefined property mc. Как тогда обращаться к клипам, если они не видны за пределами функции hendleComplete ? я не могу же их объявить после объявления класса т.к. я не знаю сколько клипов будет. Или это как то можно?

DRAGOnoid 18.05.2008 12:32

муторно
самый простой способ опять же сам сказал если есть функция hendleComplete
в которой у тебя что то типа
Код:

public function hendleComplete (event:Event):{
for (var i:uint=0; i<10; i++) {
this['mc'+i].addEventListener(MouseEvent.CLICK, this['onClick'+i]);
}
}

но в таком случае тебе придётся писать непонятное колличество функций для непонятного колличества мувклипов а это неправильно!

кажется ещё _ect говорил, да и многие другие, да и я очень советую: сложные объекты программируй отдельными классами.

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

Reflection 18.05.2008 12:54

тоесть я потом создаю экземпляры класса по кол-ву равным с кол-вом картинок. Ладно буду пытаться разбираться с классами.

CEBEP 21.05.2008 00:01

Код:

var req:URLRequest = new URLRequest("a.swf");
var loader:Loader = new Loader();


addEventListener(MouseEvent.CLICK, myLoad);
function myLoad(event:MouseEvent):void
{
        loader.load(req);
        trace(loader.contentLoaderInfo.bytesTotal);
        myContainer.addChild(loader);
       
}

Грузит флешку, всё ок. Но как мне добратся до bytesTotal

loader.contentLoaderInfo.bytesTotal - возращяет 0 :(

etc 21.05.2008 02:26

А вы думаете, что флеш может мгновенно после старта загрузки определить размер файла?

CEBEP 21.05.2008 10:01

Код:

myContainer.addChild(loader);
trace(loader.contentLoaderInfo.bytesTotal);

так? но всё равно и bytesTotal и bytesLoaded возвращает 0 :(

etc 21.05.2008 10:33

Нет, не так. В сути ничего не изменилось, вы пытаетесь получить размер файла ещё до начала загрузки оного. А оно (начало загрузки) начнется гораздо позже выполнения любого кода в myLoad.

Reflection 21.05.2008 13:53

на сколько я понимаю нужно добавить
Код:

loader.addEventListener(ProgressEvent.PROGRESS, hendleprogress);

etc 21.05.2008 14:05

У LoaderInfo есть и другие события.

CEBEP 21.05.2008 16:15

ура, заработало :) спасибо событиям INIT и COMPLETE


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

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