2016-05-01 2 views
0

Livecodeで私は、XMLを使用してデータベースから情報を引き出し、リピート機能を使って整理しています。したがって、ノードごとに写真、名前、年齢などの情報があります。フィールド内のURLを写真に変換するにはどうすればよいですか?

写真は、写真のURLリンクとしてXMLから読み込まれます。このURLを自動的にロードして、このノードの情報に続いて画像を表示させる方法はありますか?

答えて

0

XMLノードが写真にURLを返すが、これはどのノードに書き込まないかを記述します。その場合、URLを返すと仮定して、

revXMLNodeContents(tInfo, "ArrayOfXmlNode/"&tChild&"/"&tAdoptable&"/Photo") 

とします。 URLを変数に入れて画像オブジェクトのテキストを設定します:

put revXMLNodeContents(tInfo, "ArrayOfXmlNode/"&tChild&"/"&tAdoptable&"/Photo") into myUrl 
put url myUrl into myPictureData 
if the result is empty then 
    set the text of img 1 to myPictureData 
else 
    beep 
    answer error "Can't load picture." 
end if 
+0

Markこれはうまくいったが、次のノードに繰り返されるピクチャを切り替える画面の中央に1つのピクチャだけである。各写真を最後から分離する方法はありますか? – CElwell

+0

@CElwellはいあります。 LiveCodeとイメージオブジェクトの操作について詳しくは、 'rect'プロパティについて読んで、あなたのプロジェクトの設計について考えてください。助けが必要な場合は、おそらく新しい質問をするのが最善です。 – Mark

0

Marksの優れた答えの後でスレッドを申し訳ありません。しかし、私は通常は画像のファイル名を設定します。画像が正しくロードされている場合

repeat for each line tChild in tChildren 
    add 1 to x 
    ... 
    put revXMLNodeContents(tInfo, "ArrayOfXmlNode/"&tChild&"/"&tAdoptable&"/Photo") into myUrl 
    create image ("image" && x) 
    put it into tImageID 
    set the filename of tImageID to myURL 
    ... 
end repeat 

これはチェックしませんが、あなたは、とにかく任意の画像を取得することはありませんように、それは簡単なソリューションです。

+0

この方法にはいくつかの問題があります。これは高度なプログラマーであれば解決できます。したがって、私は少し信頼性の高い堅牢な方法を使用することにしました。 – Mark

+0

私はあなたの答えが見えなかったので、私は謝罪します。私はここでもマークが言っていることを理解していますが、私もあなたの方法を試してみて、アプリケーションの中央に現れる同じイメージの問題で結局終わりました。 – CElwell

+0

オンザフライで画像を作成する場合は、実際にはすべてのコントロールが中央に配置され、コードを使用して正しい位置に移動する必要があります。あらかじめ定義された画像がある場合は、サイズと位置をロックすることができ、サイズと位置の両方を保持します。 – hliljegren

関連する問題