PDA

Просмотр полной версии : как разделить анимацию и код


artcraft
06.07.2006, 16:52
пока лучшее что я смог сделать это

подгрузить swf с мувиклипом на сцене, приаттачить мувик с анимацией в главный ролик и перемотать:

package {
import flash.display.*;
import flash.net.*;
import flash.events.*;

public class Z extends Sprite{

public function Z(){
stage.scaleMode = "noScale";
stage.align = "TL";

var ldr:Loader = new Loader();
var urlReq:URLRequest = new URLRequest("test.swf");
ldr.load(urlReq);
ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, loaded);
}

private function loaded(event:Event):void {
var content:Sprite = event.target.content;

var mc:DisplayObject=content.getChildByName('a');
addChild(mc);
var mcc:MovieClip=(mc as MovieClip);
mcc.gotoAndStop(10);
}
}
}


вопросы:
1) Как добраться до мувиклипов в библиотеке подгружаемого ролика (если это возможно)
2) Как подгруженному мувиклипу назначить новый класс

Nirth
06.07.2006, 16:59
1) фиг знает
2) ты не сможешь это сделать. подгруженный мувик будет принадлежать к тому классу, который ты задал в Document Class
через flash.utils.describeType можешь узнать что за класс его родителя, свойства, методы и тд

Nirth
06.07.2006, 17:14
Насчет первого вопроса, еще не тестировал, но что если просто попробывать создать экземпляр класса, который присутствует в библиотеке подгруженногго мувика?

artcraft
06.07.2006, 17:22
выдаёт ошибку - нет такого класса

artcraft
06.07.2006, 17:41
ура получилось - круто сразу оба вопроса отпадают
сейчас напишу как

Nirth
06.07.2006, 18:01
я сделал какой то криво пример=)
14668

Надо бы почитать как делается рефлекшнз в C#

artcraft
06.07.2006, 18:39
флэшка с графикой сделана во флэш 9
все классы - флекс 2
главный ролик (Main.swf) скомпилирован флексом

artcraft
06.07.2006, 19:03
новый затык:
если в подгружаемом мувиклипе на кадр повесить stop();
то после загрузки в другой ролик этот стоп перестаёт работать :~/

artcraft
06.07.2006, 19:20
вообще весь аs на кадрах игнорируется

artcraft
06.07.2006, 19:54
и currentLabel тоже не работает собака
только - currentFrame и currentLabels

Nirth
06.07.2006, 20:31
попробуй вызвать скрипт кадров вручную ( frame1(); )

artcraft
06.07.2006, 20:50
попробуй вызвать скрипт кадров вручную ( frame1(); )1061: Call to a possibly undefined method frame1 through a reference with static type LibItems:A.

artcraft
06.07.2006, 20:58
моя цель:
перематывать подгруженный ролик от лэйбла до команды стоп (или до следующего лэйбла) и там, в конце анимации, вызвать функцию - вроде такой "trace('доиграло, можно продолжать выполнение программы');"

artcraft
07.07.2006, 01:16
я победил это всё :bb:
класс LibItem наследуется от MovieClip
и умеет проигрывать мувик от лэйбла до лэйбла
при запускании анимации можно передать ссылку на функцию, кот. будет вызвана по окончании анимации

в аттаче двухпозициоонный переключатель, анимация которого вынесена во внешний файл