2015-11-09 2 views
0
кода

Временной шкалы:AS3 доступ к стадии из класса

import as3.first; 

first._this=this; 

var str1:String='this is timeline'; 

Код класса:

package as3 { 

import flash.display.MovieClip; 

public class first extends MovieClip { 

public static var _this:Object; 

trace(_this.str1); 

} 

} 

Сообщения об ошибке:

TypeError: Error #1009: Cannot access a property or method of a null object reference.

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

ответ

2

В целом то, что вы делаете, несколько странно. Может быть, вам просто нужен a document class для вашего SWF-корня? Вы также можете использовать add a class to any movieclip в своей библиотеке: в обоих случаях вы можете получить доступ к временной шкале.

package as3 
{ 
    import flash.display.MovieClip; 
    public class first extends MovieClip 
    { 
     public static var _this:Object; 
     trace(_this.str1); // you may place code here... but consider this: 
          // this area is STATIC, the code here 
          // executes only once when class gets initialized, 
          // so, this happens BEFORE you assign first._this=this; 
    } 
} 
+0

У меня есть приложение, полностью выполненное в Flash Pro, без использования классов, за исключением одного класса под названием «AndroidLink», который является частью собственного расширения android (.swc, включенного в .ane). Я использую его для отправки строк из as3 в собственный код Java внутри расширения. Также я могу получить строки из собственного кода в as3, но только внутри класса AndroidLink. Когда я что-то получаю, мне нужно вызвать ту или иную функцию на временной шкале, которую я не знаю, как это сделать. Спасибо, что пытались мне помочь! – DBC

+0

Представьте себе: когда пользователь открывает мое приложение и показывает «Новая игра», мой as3 отправляет команду на собственный код, чтобы показать полноэкранное объявление. Когда пользователь закрывает добавление, запускается «onClose», а собственный код отправляет строку as3. Мой класс AndroidLink получает строку со значением «ad closed», а затем ей нужно вызвать функцию «newGame()», которая находится на временной шкале. Отсюда возникает вопрос «как получить доступ к временной шкале от класса». – DBC

+0

Я бы отправил событие из экземпляра AndroidLink (или из класса, если оно статично) после получения данных из java. Затем вы можете создать слушателя на временной шкале. Для этого вы можете следовать одному из многочисленных руководств по отправке событий в ActionScript. Например, например: http://code.tutsplus.com/tutorials/as3-101-events-basix--active-10018 Кроме того, вы можете передать обратный вызов с временной шкалы на AndroidLink, чтобы он мог, Вам позвоним. Для этого вам нужно знать, как получить доступ к AndroidLink из кода временной шкалы. Последнее зависит от того, как структурирован ваш код библиотеки. –

Смежные вопросы