![]() |
|
||||||||||
|
|||||
|
Регистрация: Jan 2007
Сообщений: 36
|
Прошу прощения за мою некомпетентность.... Возникла задача, с которой никак не получается справиться . Суть в следующем.
Предположим есть некий класс, c обработчиком EnterFrame: public class ttt extends MovieClip
{
public function ttt(z:Object) {
z.addEventListener(Event.ENTER_FRAME, onEnter);
}
function onEnter(event:Event):void {
// здесь должна вызываться ф-ция fn()
// расположенная в базовом классе
// каким образом???????
}
}
public class Ss extends MovieClip
{
public function Ss() {
var be:ttt = new ttt(stage);
// здесь ф-ция которая должна вызываться из обработчика в ttt:
function fn() {
trace("hello world");
}
}
}
выполнять функцию внутри конструктора в базовом классе? ![]() Последний раз редактировалось farmonol; 16.01.2007 в 21:42. |
|
|||||
|
4AM Games
|
я не могу понять, кто вас так учил называть переменные? особено когда выкладываешь чтобы видели другие люди?!
и почему два класса наследуют MovieClip, а не друг друга? я ничего не понял. если имелось ввиду что ttt наследует ss то из tt можно либо просто или если метод переопределен, и нужен старый то
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^ |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
А почему класс имеет такое название?
И z не имеет метода addEventListener. Приведите в порядок свой код. |
|
|||||
|
Регистрация: Jan 2007
Сообщений: 36
|
Добился всётаки как это можно реализовать.
Здесь создаем ф-цию n() и экземпляр объекта который будет ее выполнять: package
{
import flash.display.*;
import flash.events.*;
public class Run extends MovieClip
{
public function Run() {
var z:Test = new Test();
z.txt = "Hello World";
function n(){
trace(z.txt);
}
z.mmx(n);
}
}
}
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Ужас. Функции не объявляются внутри функции!
Почему нельзя в mmx передать ссылку на Run и вызвать метод какой-нибудь? |
|
|||||
|
Регистрация: Jan 2007
Сообщений: 36
|
потому что изначально была идея максимально упростить обращение с объектом (А), который генерирует некие события.
Чтобы пользователь именно внутри конструктора базового класса , в котором создавался экземпляр объекта (А), мог написать свои обработчики событий для объекта (А). |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Так и подписывай на события обработчик в другом классе.
|
|
|||||
|
Регистрация: Jan 2007
Сообщений: 36
|
Цитата:
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Обычная подписка:
package {
import flash.events.Event;
import flash.display.Sprite;
import Receiver;
public class Dispatcher extends Sprite {
public function Dispatcher() {
super();
var receiver:Receiver = new Receiver();
this.addEventListener(Event.ENTER_FRAME,receiver.enterFrameHandler);
}
}
}
|
![]() |
![]() |
Часовой пояс GMT +4, время: 06:05. |
|
|
« Предыдущая тема | Следующая тема » |
|
|