![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Проблема такая:
Есть несколько классов extends MovieClip. Нарисованы к ним клипы, причем они вложены друг в друга - ща на пальцах покажу чтоб было ясно: Мувик а_мс, его класс А_МС в него вложен мувик в_мс, его класс В_МС теперь если я складываю этот мувик (А_МС) на сцену то все нормально работает, но если я атачу этот мувик функция any не срабатывает!!! выглядит это где-то так: this.attachMovieClip('a_mc_linkName','my_a_mc',1); my_a_mc.any='77' вот эта строка не отобразаеться (функция не сробатывает), почему так и как с этим бороться ? |
|
|||||
|
Banned
[+1 16.05.2006]
[++1 16.05.2006] [+ 1 21.05.06] [++ за хамство] [+1 21.05.2006] Регистрация: Dec 2003
Сообщений: 3,925
|
Скорее всего дело в загрузке кадров во врейме n и попытке заюзать их во фрейме m, где m < n.
И еще : глядя на такую кашу я еще больше поддерживаю классика Мука в борьбе за разделение мух и котлет, а именно визуальной части и кода. Вместо наследования от MovieClip можно было воспользоваться композицией. |
|
|||||
|
всего используеться 1 кадр.
теперь что ты подразумеваешь под композицией?. Классы сами создают свои мувики, а не являються наследниками мувиклипа? |
|
|||||
|
Регистрация: Dec 2002
Адрес: Живу вот где-то
Сообщений: 493
|
|
|
|||||
|
Banned
[+1 16.05.2006]
[++1 16.05.2006] [+ 1 21.05.06] [++ за хамство] [+1 21.05.2006] Регистрация: Dec 2003
Сообщений: 3,925
|
Что-то подобное:
import com.novemberain.visual.IVisualInterface;
import mx.transitions.*;
/**
*
* @author
* @version
**/
class com.novemberain.visual.VisualObject implements IVisualInterface
{
private var __viewport:MovieClip;
function VisualObject( mc:MovieClip )
{
__viewport = mc;
}
/**
*
* @usage
* @return
*/
public function getVisualObject(): Void
{
return __viewport;
}
/**
*
* @usage
* @param x
* @param y
* @return
*/
public function move( x:Number, y:Number ): Void
{
trace('Object ' + __viewport + ', called move to ' + [x, y]);
__viewport._x = x;
__viewport._y = y;
}
/**
*
* @usage
* @param state
* @return
*/
public function changeState( state:String ): Void
{
if(state) __viewport.gotoAndStop(state);
}
/**
*
* @usage
* @param x
* @param y
* @return
*/
public function slideTo( x:Number, y:Number, relative:Boolean, time:Number, callback:Function ): Void
{
if(relative)
{
var xTo:Number = __viewport._x + x;
var yTo:Number = __viewport._y + y;
} else
{
var xTo:Number = x;
var yTo:Number = y;
}
var xTween:Tween = new Tween(__viewport, '_x', Elastic.easeOut, __viewport._x, xTo, time, true );
var yTween:Tween = new Tween(__viewport, '_y', Elastic.easeOut, __viewport._y, yTo, time, true );
if(callback) xTween.onMotionStopped = callback;
xTween.start();
yTween.start();
}
/**
*
* @usage
* @return
*/
public function show( ):Void
{
__viewport._visible = true;
}
/**
*
* @usage
* @return
*/
public function hide( ):Void
{
__viewport._visible = false;
}
}
|
|
|||||
|
2 Монстр - класс в_мс не явлдяеться наследником а_мс
Ну хорошо написал ты этот код и что дальше? или намекаешь что все мои мувики теперь должны обрастать таким VisualObject? как это у меня сделано: class A_mc extends MovieClip{
var num:TextField;
var b_mc:B_mc;
function set mcName(e)
{
this.num.text='A '+e;
this.b_mc.mcName =this.num.text;
}
}
class B_mc extends MovieClip{
var num:TextField;
function set mcName(e)
{
this.num.text='B '+e;
}
}
my_1_mc.mcName = 'legit';
this.attachMovie('a_mc','my_2_mc',2,{_x:200});
this.my_2_mc.mcName='priatta4en ';
так объясню - в библиотеке 2 клипа a_mc и b_mc - им установлены соответствующие классы и линкаджнеймы, b_mc - внутри 1 текстовое поле, имя num и фон. a_mc - внутри 1 текстовое поле, имя num, фон и мувик b_mc, имя b_mc. на выходе получаем в для my_1_mc имена и там и там, для my_2_mc имя только у a_mc, во вложеном кату имени , сеттер не сработал(и методы тоже не работаеют) как можно это переписать чтоб всегда работало ? и при аттаче и так? |
|
|||||
|
Banned
[+1 16.05.2006]
[++1 16.05.2006] [+ 1 21.05.06] [++ за хамство] [+1 21.05.2006] Регистрация: Dec 2003
Сообщений: 3,925
|
Я ни на что не намекаю. Я сказал, что считаю нужным. Более того, раз ты продолжаешь говорить "все мои мувики", значит, разницу ты не уловил.
Решать только тебе. |
|
|||||
|
объясни мне, где я неправ и почему нужно делать так как ты, а не как я в чем различие ?
|
|
|||||
|
в принципе то есть решение этой проблемы но оно очень корявое!!!!!!
|
|
|||||
|
Banned
[+1 16.05.2006]
[++1 16.05.2006] [+ 1 21.05.06] [++ за хамство] [+1 21.05.2006] Регистрация: Dec 2003
Сообщений: 3,925
|
Цитата:
Это не значит, что ты не прав. Это значит, что есть "лучшие техники", а есть просто решения. |
![]() |
![]() |
Часовой пояс GMT +4, время: 14:24. |
|
|
« Предыдущая тема | Следующая тема » |
|
|