PDA

Просмотр полной версии : [as2.0] Как поступить технично?


: hr :
31.10.2005, 15:09
Друзья, подскажите пожалуйста, как технично с точки зрения правил AS 2.0 и ООП обратиться к вложенному в клип мувику, для которого в Lincage установлен AS2 класс?
Другими словами, в библиотеке символ Ball, AS2 - Ball, внутри клипа Ball клип ballIn. Пишу

class Ball extends MovieClip {
this.ballIn.onRelease = function {} // естественно вызывает ошибку There
//is no property with the name 'ballIn'
//можно конечно обойти

this["ballIn"].onRelease = function {} //работает
}

Как в этом случае поступать грамотно?

7thsky™
31.10.2005, 15:33
просто определи переменную в классе


import mx.utils.Delegate;

class Ball {
public var ballIn:MovieClip;

public function Ball () {
ballIn.onRollOver = Delegate.create (this, __onRollOver);
ballIn.onRollOut = Delegate.create (this, __onRollOut);
}

private function __onRollOver () {
ballIn._alpha = 50;
}

private function __onRollOut () {
ballIn._alpha = 100;
}
}

: hr :
31.10.2005, 16:42
7thsky™, спасибо большое, понял! а можно пару слов о необходимости применения в данном случае Delegate?

Почему нельзя просто:

ballIn.onRollOver = function() {
this._alpha = 50;
}